Spring Cloud Stream 整合RocketMQ

Spring Cloud Steam是一个框架,用于构建与消息系统连接的可扩展事件驱动微服务

Spring Cloud Stream 整合RocketMQ_第1张图片

 Spring Cloud Stream 的核心构建模块是:

  • Destination Binders : 负责提供与外部消息系统传递的组件
  • Destination Bindings:外部消息系统和最终用户提供的应用程序代码(生产者/消费者)之间的桥梁。
  • Message:生产者和消费者用来与目标绑定器(以及通过外部消息系统的其他应用程序)进行同喜的规范数据结构

入门使用

依赖


        
            com.alibaba.cloud
            spring-cloud-starter-stream-rocketmq
            2.2.9.RELEASE
        

配置

spring:
  cloud:
    stream:
      bindings:
        #Produce Config
        output:
          #消息发送的主题
          destination: my-boot-tpoic
          group: cloud-producer-group
        #Consumer Config
        input:
          destination: my-boot-tpoic
          group: cloud-consumer-group
      rocketmq:
        binder:
          #配置rocketMQ连接的name server地址
          name-server: 192.168.99.100:9876
          group: rocketmq-group

生产者

@EnableBinding(Source.class)

Source接受配置文件中的output配置

@Component
public class MyProducer {
    @Resource
    private Source source;

    public void sendMessage(String msg) {
        //封装消息头,可以使用Spring自带的MessageConst的key,也可以使用自己的key
        Map headers = new HashMap<>();
        headers.put(MessageConst.PROPERTY_TAGS, "TagA");
        MessageHeaders messageHears = new MessageHeaders(headers);
        //创建消息对象
        Message message = MessageBuilder.createMessage(msg, messageHears);
        //发送消息
        source.output().send(message);
    }
}

消费者

@EnableBinding(Sink.class)

 Sink接受配置文件中的input配置

@Component
public class MyConsumer {

    @StreamListener(Sink.INPUT)
    public void processMessage(Message message){
        System.out.println(message);
    }
}

你可能感兴趣的:(MQ,rocketmq)