rocketmq之源碼分析階段總結(二十一)

RocketMQ是隊列模型的消息中間件,具備高性能,高可靠,高實時,分佈式的特色。同時支持分佈式事物的兩階段提交,實如今分佈式環境的事物操做。java

1,nameserv是分佈式的部署,而且相互之間不通訊,單個的宕機或增長對總體的影響較小,能夠忽略。網絡

2,broker是分佈式的高性能實現,提供根據業務特色選擇的數據同步及落盤機制,確保數據的完整及一致性數據結構

3,producer,consumer均可以是分佈式,根據topic及過濾表達式定義適合業務的發送及消費機制框架

4,數據結構是基於自定義的高效二進制,數據存取以offset偏移位置進行高速高效的讀寫,提供順序寫,隨機讀的特性分佈式

5,通訊協議,底層基於java的nio框架netty的通訊,自定義協議,消息頭和消息體的自定義二進制序列化存取性能

 

提供的總體操做流程,主要是說明問題netty

1,啓動nameserv,無狀態服務,數據不會持久化,之內存結構存儲,服務啓動接收請求進行數據存取,服務關閉則數據清空中間件

2,啓動broker,加載歷史數據,該服務會持久化數據及數據關係配置,而後註冊當前服務的數據配置到namesrv上隊列

3,producer啓動,首先是鏈接namesrv,得到broker的數據配置信息,而後鏈接broker,根據功能進行消息數據的發送內存

4,consumer啓動,首先是鏈接namesrv,得到broker的數據配置信息,而後根據訂閱的數據連接broker,進行網絡通訊實時數據拉取

相關文章
相關標籤/搜索