天天看點

44. 源代碼解讀-RocketMQ-架構

<a href="https://github.com/apache/rocketmq">https://github.com/apache/rocketmq</a>

<a href="https://github.com/apache/rocketmq-externals">https://github.com/apache/rocketmq-externals</a>

RocketMQ分成兩個程序運作

Namesrv

Broker

Namesrv,命名服務,主要負責Broker狀态管理,Topic路由資訊查詢等等,端口是9876

Broker負責消息存儲,轉發,等等,一般占用3個端口

10911 -- Broker主邏輯端口

10912 -- 持久化端口

10909 -- vip端口

另外,Namesrv可以叢集配置,各個Namesrv之間是對等的,彼此不通信,不需要互相通信。

Broker可以以單master, 多master,多master多slave等多種方式運作。

44. 源代碼解讀-RocketMQ-架構

rocketmq-broker 主要的業務邏輯,消息收發,主從同步, pagecache等等

rocketmq-client 用戶端接口,比如生産者和消費者。pull和push消費模式,消息負載均衡等等。

rocketmq-common 公用資料結構等等

rocketmq-distribution 編譯子產品,編譯輸出等

rocketmq-example 示例,比如生産者和消費者

rocketmq-fliter

rocketmq-flitersrv

rocketmq-logappender 日志相關

rocketmq-namesrv Namesrv服務

rocketmq-openmessaging

rocketmq-remoting 遠端調用接口,封裝Netty,主要是NettyRemotingServer和NettyRemotingClient

rocketmq-srvutil server util,提供一些公用的工具方法,比如解析指令行參數

rocketmq-store 消息存儲

rocketmq-test 測試

rocketmq-tools 管理工具,比如有名的mqadmin工具

     本文轉自rongwei84n 51CTO部落格,原文連結:http://blog.51cto.com/483181/2043857,如需轉載請自行聯系原作者