適用場景
RabbitMQ本身的優點眾多,大家最看好的便是它的異步化提高系統抗峰值能力,然后便是系統及功能結構解耦,那么照此兩點來說,它在整個系統中的作用是至關重要的。
那么如此重要,當然要考慮他的高可用性;混合云、多可用區、多機房的部署架構是大家普遍追尋的方案,但是怎么避免網絡因素帶來的影響呢?
RabbitMQ有很多種高可用方案,本文我們重點講述federation插件方式,此方案一般適用于大型的分布式集群,可以避免因網絡問題帶來的消息差異、腦裂等情況。
Federation插件使RabbitMQ在不同Broker節點間進行消息傳遞而無須建立集群,在不同管理域(不同的用戶和vhost、不同版本的RabbitMQ Erlang上)中的Broker或集群間傳遞消息,能容忍不穩定的網絡連接情況。
前期準備
兩臺安裝rabbitmq的機器 ,進行federation插件測試。
配置federation插件
rabbitmq-plugins enable rabbitmq_federation
rabbitmq-plugins enable rabbitmq_federation_management
federation中的參數信息:
name: 新增的federation聯合插件的上游名稱,這個可以隨便取名。
uri:上游federation聯合rabbitmq的地址,上游是指訂閱的服務器節點。
prefect count:一次性從上游rabbitmq服務器預期數據的最大數量,默認是1000。
reconnect delay:網絡連接失敗后下次重連的等待時間,默認是5秒。
Acknowledgement Mode:消息確認方式,on-confirm、on-publish和no-ack。含義分布如下:
Trust User-ID:是否信任從上游服務器傳來的用戶id,默認是yes,設置成no,將會清空從上游服務器傳來的user id信息。
接下來是專門提供給federation exchange交換器的參數:
Exchange:定義上游服務器的聯合的exchange名稱,默認情況下的取名與聯合的exchange名稱相同。
max hops:消息在被放棄或者說被消費前消息可以傳遞的最大的聯合federation 連接長度,默認是1,一般情況連接長度等于聯合的節點數量-1。
Expires:上游服務器節點保持節點信息的最長時間,單位毫秒,默認的是永久保存。
Message TTL:在上游節點中消息未被傳遞時可以保存的時長,單位毫秒,默認是永久保存。
HA Policy:檢查一個聯合exchange的上游queue中的x-ha-policy,用于確認該queue是否是一個HA的queue,默認是none表示不是一個HA的queue。
最后是federation queue的參數:
Queue:定義上游服務器的聯合的queue名稱,默認情況下的取名與聯合的queue名稱相同。
3. 定義聯合查詢federation
name標識名稱。
pattern表示匹配的表達式,用法是正則表達式。
apply to表示應用在exchange還是queue上面,亦或兩者都使用。
priority表示優先級,值越大,優先級越高。
definition用于定義使用的配置,這里我們定義的是federation聯合,它有federation upstream set和 federation upstream兩種方式,set表示集合,定義需要該策略的所有上游名稱,一般我們都取值為all。
完成定義策略后,那么就會看到同步策略中開起的exchange、queue狀態。
通過界面已經看到了federation聯合查詢對應的exchange和queue已經處于運行狀態了,這個時候我們可以看到另一臺控制臺上的connection頁簽。
這個時候在rabbitmq服務器上面已經有了federation標志的連接,也就是我們剛才在前面定義的federation,在連接上面可以看到federation的名稱及policy,說明已經同步到了另一臺機器上面,同時我們也可以在exchange頁簽及queue頁簽中看到在另一臺機器上面定義的federation聯合exchange和queue名稱。
功能驗證
向交換機插入消息,驗證是否可以進行同步:
登錄另一個控制臺:
從圖中可以看到已經有一條消息過來,我們檢查消息是否正確。
同步消息和手動插入的消息一致,至此federation插件驗證完成。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129564.html
摘要:一主備模式主備模式實現的高可用集群,一般在并發和數據量不高的情況下,這種模式很好用且簡單。主備模式也稱之為模式。多活集群架構如下 一、主備模式(Warren) 主備模式:實現RabbitMQ的高可用集群 ,一般在并發和數據量不高的情況下,這種模式很好用且簡單。主備模式也稱之為Waren模式。就是一個主/備方案(主節點如果掛了,從節點提供服務而已,主備切換。) 二、遠程模式(Shove...
摘要:主流消息中間件介紹是由出品,是一個完全支持和規范的實現。主流消息中間件介紹是阿里開源的消息中間件,目前也已經孵化為頂級項目。 showImg(https://img-blog.csdnimg.cn/20190509221741422.gif);showImg(https://img-blog.csdnimg.cn/20190718204938932.png?x-oss-process=...
摘要:考慮到云數據中心未來承載業務系統的多樣性和擴容空間,一般都會把架構設計成公有云和私有云相混合的融合架構。針對傳統災備系統建設面臨的挑戰,云數據中心更多傾向采用兩地三中心的解決方案。近年數據中心處于高速的建設發展時期,十三五規劃中也將大數據、云計算作為當前國家經濟社會發展的重要戰略內容,各政府部門對戰略性新興產業的大力扶持,以及對云計算、物聯網、寬帶和下一代網絡的發展的高度重視,都給建設數據中...
引言據信通院《2022云計算白皮書》報告,國內云計算市場達3000億規模,云計算成為企業數字化轉型的基礎設施已是大勢所趨。隨著企業數字化轉型的逐步深入,業務發展與IT基礎架構演進密不可分,如何保障數據隱私安全和業務連續性,是 IT 建設中必須關注的問題。出于數據隱私和安全性考量,私有云解決方案成為構建數字化轉型的基礎底座,通過同城雙活及兩地三中心的高可用架構保障生產環境穩定性和業務過程連續性;同時...
閱讀 1346·2023-01-11 13:20
閱讀 1684·2023-01-11 13:20
閱讀 1132·2023-01-11 13:20
閱讀 1858·2023-01-11 13:20
閱讀 4100·2023-01-11 13:20
閱讀 2704·2023-01-11 13:20
閱讀 1385·2023-01-11 13:20
閱讀 3597·2023-01-11 13:20