1. 程式人生 > 實用技巧 >RabbitMQ叢集架構和原理解析

RabbitMQ叢集架構和原理解析

RabbitMQ 四種叢集架構

  • 主備模式:warren(兔子窩),一個主/備方案(主節點如果掛了,從節點),與提供服務,和ActiveMQ 利用Zookeeper做主/備一樣)ActiveMQ不同的是,RabbitMQ主使用HaProxy路由。當主節點恢復後,會成為備份節點的備份節點,會進行漂移
    在這裡插入圖片描述
    可以理解為是熱備份,有一個Master和一個Slave, 正常情況下,Master是對外提供讀寫的,而Slave僅僅作為一個備份,當系統出現異常的時候,比如說Master遇到宕機時,會做一個切換,Slave節點會升級成Master節點,繼續對外提供服務(主從切換)

主備模式-HaProxy 配置

在這裡插入圖片描述

  • 遠端模式:遠距離通訊和複製,可以實現雙活的一種模式,簡稱Shovel模式。
    所謂的Shovel就是我們可以把訊息進行不同資料中心的複製工作,可以跨地域的讓兩個mq叢集互聯。
    在這裡插入圖片描述
    RabbitMQ早期提供的一種多活的儲存,主要是做資料的異地容災,異地轉移,也可以提升效能,比如說當我們單節點(單個叢集)處理不過來的時候,可以把訊息轉發到某個下游的叢集模式中,這種方式的架構非常簡單,但是配置很複雜。

Shovel叢集的配置步驟

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

  • 映象模式:非常經典的叢集模式,保證100%資料不丟失。映象模式類似於MongoDB的複製集概念。

在這裡插入圖片描述
工作中用的最多,實現非常簡單,網際網路大廠也會用。
Mirror映象佇列:高可靠、資料同步、3節點(推薦奇數個節點)
缺點:無法橫向擴容。

  • 多活模式:實現異地資料複製的主流方式。
    需要依賴federation外掛,可實現持續的可靠的AMQP資料通訊,配置與應用非常簡單。
    在這裡插入圖片描述

與遠端模式差不多,就是做一個異地的容災,或者資料的轉儲功能,路由轉發的而功能

在這裡插入圖片描述
Federation外掛:可以在broker或cluster之間傳輸,可以看成exchanges:下游從上游拉去訊息,視覺化新增路由。

RocketMQ1


  1. 下期分享RocketMQ訊息中介軟體叢集架構與原理解析 ↩︎