springboot集成rocketmq

2024-11-13  本文已影响0人  风一样的存在
发送消息的几种模式:

springboot集成rocketmq的语法:

同步发送:

rocketMQTemplate.syncSend(topic, message)

异步发送:

rocketMQTemplate.asyncSend(topic, message, new SendCallback() {
      @Override
      public void onSuccess(SendResult sendResult) {
           System.out.println("Send success: " + sendResult);
     }

     @Override
     public void onException(Throwable e) {
          e.printStackTrace();
     }
});

单向发送:

rocketMQTemplate.sendOneWay(topic, message);

顺序发送:

// 使用 MessageQueueSelector 来控制消息发送到某个队列,从而保证顺序性
rocketMQTemplate.send(topic, message, new MessageQueueSelector() {
     @Override
     public MessageQueue select(List<MessageQueue> mqs, Message msg, Object arg) {
           // 根据某个参数决定消息发送到哪个队列
          int index = Math.abs(msg.getKeys().hashCode()) % mqs.size();
          return mqs.get(index);
     }
});

广播发送:

rocketMQTemplate.setMessageModel(MessageModel.BROADCASTING);

事务消息:

 // 发送事务消息
SendResult sendResult = rocketMQTemplate.sendMessageInTransaction(topic, message, null);
tag的使用的坑:

使用相同的topic和group,使用不同的tag区分消息,会出现指定消费tagA的消息还会消费tagB的消息,

https://www.jianshu.com/p/46eda2745258

上一篇 下一篇

猜你喜欢

热点阅读