RocketMQ-消息发送源码分析(二)消息发送基本流程及Topic路由信息获取

问题点

同样,在介绍消息发送流程之前,先抛出几个问题

  1. 消息发送有哪几种方式?
  2. producer是如何查找、维护topic对应的路由信息的?

消息发送的实现类为DefaultMQProducer

消息发送方式

先看下DefaultMQProducer中有哪些发送方法
在这里插入图片描述
大体可分为三种

  1. send(Message)为同步发送
  2. send(Message,SendCallback)为异步发送,SendCallback是发送成功后的异步回调函数
  3. sendOneway(Message,MessageQueue)为单向发送,

这三种发送方式又有什么区别呢?

  1. 同步发送需要发送端同步等待MQ服务器响应,保证了消息发送的可靠性,因为是同步等待,所以耗时较多
  2. 异步发送消息后,发送端不再阻塞等待响应,可以处理、发送其他消息,等待服务端消息确认后异步回调发送端设置的回调接口,耗时较小,消息可靠性也有保证
  3. 单向发送,不在乎消息发送的可靠性,发送端只管发消息,不在乎消息是否到达broker端,也不在乎响应结果,适合一些对可靠性没有要求的场景,比如日志收集,耗时最小

看到这里,开头的问题1也

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值