RocketMQ:消息存储

匠心零度 转载请注明原创出处,谢谢!

RocketMQ网络部署图

NameServer:在系统中是做命名服务,更新和发现 broker服务。

Broker-Master:broker 消息主机服务器。

Broker-Slave: broker 消息从机服务器。

Producer: 消息生产者。

Consumer: 消息消费者。

说明:rocketmq系列都将会以rocketmq-4.1.0-incubating进行介绍。

在阅读源码时做了一定的注释,公众号【匠心零度】回复:rocketmq,可获得基于rocketmq4.1.0加详细中文代码注释 。欢迎大家 star、fork !

厮大说过消息中间件的本质消息中间件大道至简:一发一存一消费,今天主要来讨论下,一发一存一消费中存是最复杂的,通过上面的网络部署图我们可以看出来,相对于nameserver来说broker是客户端,相对于producer、consumer来说broker是服务端,(相对于slave来说master是服务端(先启动master再启动slave的),但是由于tcp是网络部署图是master到slave表示的是数据流向,后续分析这块使用的不是netty而是原生的NIO)

broker的复杂超乎你的相信

你是否还记得我们在搭建

RocketMQ集群环境

的时候,基本修改了一个很长的配置文件,就是broker的配置文件,producer、consumer的配置相对少很多。

这块内容后续都会进行分析(第一次看见的时候特别崇拜,这些变量是怎么抽取出来的呢?我相信不是一次就抽取了,为了灵活那么就是做成可配置的了,而且很多不填也没关系,都是有默认值的,调皮。)

RocketMQ是如何可以做到那么牛逼!!!很多门道都在broker这块了,而且需要考虑各种各样的异常,broker挂了?消费慢了?重启了?等等。

是按照什么格式存储了producer发送的那些字段,为什么需要存储这些字段呢?

broker的复杂超乎你的相信(里面对netty,对多线程,nio,零拷贝,juc相关等运用的出神入化,相信通过后续学习你会把这些知识都串起来,而不仅仅是学习了broker的存储,而是学习了一门牛逼的武功心法(慢慢体会,等待任督二脉的打通,哈哈哈哈哈哈哈))

任何技能都需要耐下心来慢慢学习体会,感悟!!!,期待大家一起进步……未完待续!!!

我是匠心零度,欢迎关注。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180703G00YTV00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券