RocketMQ发送消息的三种方式

1.rocketQM有三种发送方式:
同步发送:等待返回结果
异步发送:立即返回,使用回调函数
一次性发送:只发送一次,不关心发送结果

2.DefaultMQProducer同步发送

DefaultMQProducer.send(msg);
public SendResult send(msg,CommunicationMode.SYNC,(SendCallback)null,timeout);

2.DefaultMQProducer异步发送

DefaultMQProudcer.send(msg,sendCallback);
sendDefaultImpl(msg,CommunicationMode.ASYNC,sendCallback,timeout)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RocketMQ发送消息的主要步骤如下: 1. 验证消息:在发送消息之前,会对消息进行验证,包括检查消息的合法性和完整性等方面。 2. 查找路由:RocketMQ会根据消息的主题(topic)来查找路由信息,确定消息应该发送到哪个消息队列。 3. 消息发送:根据路由信息,将消息发送到相应的消息队列。RocketMQ提供了三种发送方式: - 同步发送:使用DefaultMQProducer的send方法进行同步发送,会等待消息发送完成并返回发送结果。 - 异步发送:使用DefaultMQProducer的send方法进行异步发送,可以设置回调函数,在消息发送完成后执行回调函数。 - 单向发送:使用DefaultMQProducer的sendOneway方法进行单向发送,不关心发送结果,不等待响应。 在RocketMQ的topic创建机制中,一个topic对应有多个消息队列。在发送消息时,RocketMQ会根据消息的主题(topic)来选择一个消息队列进行发送。选择消息队列的算法可以是根据消息的key进行哈希计算,或者使用轮询的方式等。 如果在发送消息时遇到了故障的broker,RocketMQ会通过以下方式规避故障: 1. 客户端会定期从NameServer获取最新的broker列表,如果发现有broker宕机,会将宕机的broker从列表中移除。 2. 如果发送消息时选择的消息队列所在的broker宕机了,RocketMQ会尝试选择另一个可用的broker进行消息发送。 3. 如果所有的broker都宕机了,RocketMQ会等待一段时间后重新尝试发送消息,直到有可用的broker为止。 综上所述,RocketMQ发送消息的流程包括验证消息、查找路由和消息发送,而在选择消息队列时会根据消息的主题进行选择。在遇到故障broker时,RocketMQ会通过更新broker列表和选择可用的broker来规避故障。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值