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

1. 前言

1.1 github源代碼

https://github.com/apache/rocketmq

1.2 github其他客戶端,比如c++,php

https://github.com/apache/rocketmq-externals

1.3 運行進程

RocketMQ分成兩個進程運行

  • Namesrv
  • Broker

Namesrv,命名服務,主要負責Broker狀態管理,Topic路由信息查詢等等,端口是9876
Broker負責消息存儲,轉發,等等,一般佔用3個端口
10911 -- Broker主邏輯端口
10912 -- 持久化端口
10909 -- vip端口

另外,Namesrv可以集羣配置,各個Namesrv之間是對等的,彼此不通信,不需要互相通信。
Broker可以以單master, 多master,多master多slave等多種方式運行。

2. 代碼結構

2.1 代碼模塊

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

2.2 模塊簡介

  1. rocketmq-broker 主要的業務邏輯,消息收發,主從同步, pagecache等等
  2. rocketmq-client 客戶端接口,比如生產者和消費者。pull和push消費模式,消息負載均衡等等。
  3. rocketmq-common 公用數據結構等等
  4. rocketmq-distribution 編譯模塊,編譯輸出等
  5. rocketmq-example 示例,比如生產者和消費者
  6. rocketmq-fliter
  7. rocketmq-flitersrv
  8. rocketmq-logappender 日誌相關
  9. rocketmq-namesrv Namesrv服務
  10. rocketmq-openmessaging
  11. rocketmq-remoting 遠程調用接口,封裝Netty,主要是NettyRemotingServer和NettyRemotingClient
  12. rocketmq-srvutil server util,提供一些公用的工具方法,比如解析命令行參數
  13. rocketmq-store 消息存儲
  14. rocketmq-test 測試
  15. rocketmq-tools 管理工具,比如有名的mqadmin工具
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章