您好,登录后才能下订单哦!
密码登录
            
            
            
            
        登录注册
            
            
            
        点击 登录注册 即表示同意《亿速云用户服务条款》
        这篇文章主要讲解了使用spring stream发送消息的方法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
为什么使用spring stream 
spring stream 是用来做消息队列发送消息使用的。他隔离了各种消息队列的区别,使用统一的编程模型来发送消息。
目前支持:
启动rocketmq 
rocketmq 支持windows
start mqnamesrv.cmd start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true
修改pom.xml
<dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-stream-binder-rocketmq</artifactId>
    </dependency>增加发送接收JAVA代码
public interface InputOutput {
  String MAIL_OUTPUT = "mailOutput";
  String MAIL_INPUT = "mailInput";
  String OUTPUT = "output";
  String INPUT = "input";
  @Output(OUTPUT)
  MessageChannel output();
  @Input(INPUT)
  SubscribableChannel input();
  @Output(MAIL_OUTPUT)
  MessageChannel mailOutput();
  @Input(MAIL_INPUT)
  SubscribableChannel mailInput();
}在应用上增加注解
@EnableBinding({InputOutput.class})
增加yml配置
spring:
  cloud:
    stream:
     rocketmq:
      binder:
       name-server: 127.0.0.1:9876
     bindings:
      output:
       destination: bpmmessage
       group: bpmmessage-group
  
      input:
       destination: bpmmessage
       group: bpmmessage-group-consumer
  
      mailOutput:
       destination: mail
       group: mail-group
  
      mailInput:
        destination: mail
        group: mail-group-consumer编写代码收发消息:
MessageModel messageModel=new MessageModel();
    messageModel.setMsgType("mail");
    messageModel.setContent("helloworld");
    inputOutput.mailOutput().send( MessageBuilder.withPayload(
        "mail"
    ).build());
    inputOutput.output().send(
        MessageBuilder.withPayload(
            messageModel
        ).build()
    );这里发送的是两类消息。
接收消息:
@Service
public class MessageListener {
  @StreamListener(InputOutput.INPUT)
  public void receive(MessageModel message) {
    System.err.println(message);
    System.err.println("ok");
  }
  @StreamListener(InputOutput.MAIL_INPUT)
  public void receive(String message) {
    System.err.println(message);
    System.err.println("ok");
  }
}分别接收两类消息
看完上述内容,是不是对使用spring stream发送消息的方法有进一步的了解,如果还想学习更多内容,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。