首先尉共,你得有源碼侥加,這個網(wǎng)上都可以找到捧存,各個版本大差不差;但是由于RocketMQ并入了Apache基金會担败,所以沒了中文注釋昔穴,看起來會有些費勁。
我這邊用的是RocketMQ4.4.0的源碼提前,僅對核心源碼進行分析吗货,擴展包里的就暫時不談了。本篇文章我會解釋這些模塊大致是做什么用的狈网,詳細分析后續(xù)更新宙搬。
以下是源碼的結構:
001.jpg
其中有幾個模塊是核心:
- namesrv:namesrv的核心代碼,可以理解是mq的注冊中心孙援。
- broker:即大家常常說的消息隊列本體代碼害淤,核心中的核心。
- client:消息客戶端拓售,包含消息生產(chǎn)者窥摄、消息消費者相關類 。
- remoting:遠程通信和協(xié)議相關的代碼础淤,基于netty(rocketmq的通信部分就是由netty去實現(xiàn)的)崭放。
- store:持久化,高可用HA相關的一些代碼鸽凶,也非常重要币砂。
- filter:消息過濾的相關代碼。
- acl:權限相關的代碼玻侥。
接下來的文章我按順序從這幾個方面來分析RocketMQ:
1.路由發(fā)現(xiàn)
2.消息發(fā)送
3.消息存儲
4.消息消費
5.消息過濾
6.高可用