天天看點

RabbitMQ的高可用性方案

之前寫了一篇關于RabbitMQ的入門文章,深入了解和使用後,更多的人會關注其在生産上的應用,我結合工作中的項目,總結了關于RabbitMQ在生産上的架構方案,

我畫了一個關于RabbitMQ HA(高可用性)的使用架構圖:

RabbitMQ的高可用性方案

圖中的MQ叢集結點分為兩類,一類是記憶體結點(RAM Node),另一類是磁盤結點(Disc Node),記憶體結點是性能高但沒有持久化,磁盤結點則負責資料的持久化功能。

由于叢集中每個結點中的資料都相同,是以不結點過多時資料同步會給系統的總體性能帶來影響,是以不建議叢集中使用過多的結點。

關于記憶體結點的負載均衡,采用的是HAProxy,相對于LVS和Nginx來說,HAProxy是最合适。

由于RabbitMQ的叢集依懶于Erlang的叢集功能,本文暫時不做深入分析。

繼續閱讀