RocketMQ集群架構與原理解析

2021-10-06 03:32:53 字數 1021 閱讀 9361

rocketmq是一款分布式、佇列模型的訊息中介軟體,由阿里巴巴自主研發的一款適用於高併發、高可靠性、海量資料場景的訊息中介軟體。早期開源2.x版本名為metaq;15年迭代3.x版本,更名為rocketmq,16年開始貢獻到apache,經過1年多的孵化,最終成為apache頂級的開源專案,更新非常頻繁,社群活躍度也非常高;目前最新版本為4.5.1-release版本(2019-7-20日前)。rocketmq參考借鑑了優秀的開源訊息中介軟體apache kafka(這也是我們後面課程中重點要講解的內容哦),其訊息的路由、儲存、集群劃分都借鑑了kafka優秀的設計思路,並結合自身的 「雙十一」 場景進行了合理的擴充套件和api豐富。

接下來我們一起來看一下rocketmq優秀的能力吧

任何一種技術框架,都有 「她」 的專有名詞,在你剛開始接觸 「她」 的時候,一定要了解 「她」 的專業術語,這樣能夠更快速、更高效的和 「她」 愉快的玩耍…

如下圖所示,rocketmq原始碼包的組成,這樣更方便我們日後對他有乙個深入的學習。

rocketmq為我們提供了豐富的集群架構模型,包括單點模式、主從模式、雙主模式、以及生產上使用最多的雙主雙從模式(或者說多主多從模式),在這裡我們僅介紹一下經典的雙主雙從集群模型,如下圖所示:

rocketmq作為國內頂級的訊息中介軟體,其效能主要依賴於天然的分布式topic/queue,並且其記憶體與磁碟都會儲存訊息資料,借鑑了kafka的 「空中接力」 概念,所謂 「空中接力」 就是指資料不一定要落地,rocketmq提供了同步/非同步雙寫、同步/非同步複製的特性。在真正的生產環境中應該選擇符合自己業務的配置。下面針對於rocketmq的高效能及其瓶頸在這裡加以說明:

架構思考:

Mycat集群架構

架構圖集群總共需要有8臺機子,mysql需要4臺,mycat需要2臺,負載均衡和高可用需要2臺。之所以mycat需要集群這樣的架構,是為了避免mycat單點失效的情況,mysql主機有4臺 db1 db4 其中db1和db3是組一 主主複製 db2和db4是組二 主主複製 之所以需要主主複製是因為m...

Linux集群架構

高可用集群通常為2臺伺服器 功能和角色是一樣的 一台在工作,另一台作為冗餘。當提供服務的機器宕機,冗餘將接替繼續提供服務,這樣就可以提供系統可用的效率。高可用集群的衡量標準要保證集群服務100 時間永遠完全可用,幾乎可以說是一件不可能完成的任務。比如,在這幾年雙十一剛開始的時候,一下子進來買東西的人...

MYSQL集群架構

1 讀寫分離架構 主從架構 一寫多讀,一主多從 問題 應用程式需要連線多個資料來源 mycat可以解決 主從之間同步是非同步的 資料時弱一致性的 pxc集群 2 中介軟體 問題 主從之間同步是非同步的 資料時弱一致性的 pxc集群 中介軟體的效能將成為系統的瓶頸 3 多個中介軟體的架構 問題 主從之...