spring cloud stream + rocketmq实现收发消息

生产者端配置:

application.yml配置:

spring:
  cloud:
    stream:
      bindings:
        canal-output:
          destination:  #相当于topic
          content-type: application/json
      rocketmq:
        binder:
          name-server: 
        bindings:
          canal-output: # 定义name为output的binding
            producer:
              group: 
              #destination: springboot-mq1 #相当于topic
              #group: springboot-mq1-group
              #是否使用同步得方式发送消息。默认值: false.
              #sync: true
              #是否在 Vip Channel 上发送消息。默认值: true.
              vipChannelEnabled: false
              #发送消息的超时时间(毫秒)。默认值: 3000.
              sendMessageTimeout: 6000
              #在同步发送消息的模式下,消息发送失败的重试次数。默认值: 2.
              retryTimesWhenSendFailed: 2

消息发送实现类:

@Service
@EnableBinding({Channel.class}) //这里采用自定义的收发接口
public class MqServiceImpl implements MqService {

    @Resource
    private Channel channel; //消息发送管道

    @Override
    public void send(String msg) {
        channel.output().send(MessageBuilder.withPayload(msg).build());
    }
}
public interface Channel {

    String OUTPUT = "output";   //这里的名称对应spring.cloud.stream.rocketmq.bindings.<channelName>

    @Output(Channel.OUTPUT)
    MessageChannel output();

}

消费者端配置:

application.yml:

spring:
  cloud:
    stream:
      rocketmq:
        binder:
          name-server: 
        bindings:
          input:
            consumer:
              broadcasting: true   #开启广播模式
      # 定义name为output的binding
      bindings:
        input:
          destination:   #消费哪个topic
          content-type: application/json
          group:   #定义消费者组名

接受服务:

@RestController
@EnableBinding(Sink.class)
@Slf4j
public class MessageListenerService {

    @StreamListener(Sink.INPUT)
    public void input(Message message) {
     log.debug("消费同步消息->{}", JSON.toJSONString(message));
        Object payload = message.getPayload();
        if (null != payload) {
            
        }
    }

}

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值