RocketMQ(9) -- RocketMQ工作原理--消息的生产

分布式消息队列RocketMQ

3.1)消息的生产

3.1.1)消息的生产过程

Producer可以将消息写入到某Broker中的某Queue中,其经历了如下过程:

  1. Producer发送消息之前,会先向NameServer发出获取消息Topic的路由信息的请求

  2. NameServer返回该Topic的路由表及Broker列表

  3. Producer根据代码中指定的Queue选择策略,从Queue列表中选出一个队列,用于后续存储消息

  4. Produer对消息做一些特殊处理,例如,消息本身超过4M,则会对其进行压缩

  5. Producer向选择出的Queue所在的Broker发出RPC请求,将消息发送到选择出的Queue

路由表:实际是一个Map,key为Topic名称,value是一个QueueData实例列表。QueueData并不 是一个Queue对应一个QueueData,而是一个Broker中该Topic的所有Queue对应一个 QueueData。即,只要涉及到该Topic的Broker,一个Broker对应一个QueueData。QueueData中 包含brokerName。简单来说,路由表的key为Topic名称,value则为所有涉及该Topic的 BrokerName列表。

Broker列表:其实际也是一个Map。key为brokerName&#x

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值