Java?Rabbitmq中四種集群架構(gòu)的區(qū)別詳解
Rabbitmq 四種集群架構(gòu)
1. 主備模式
2. 遠(yuǎn)程模式
3. 鏡像模式
4. 多活模式
主備模式
主備模式: warren 兔子窩 一個(gè)主、一個(gè)備方案 主節(jié)點(diǎn)如果掛了 從節(jié)點(diǎn)提供服務(wù) 和Activemq 利用zk 做主/備一樣
主備模式 -----------------------》HaProxy 配置
listen rabbitmq_cluster bind 0.0.0.0:5682 # 配置tcp 模式 mode tcp # 簡(jiǎn)單的輪詢 balance roundrobin #主節(jié)點(diǎn) server bhz76 192.168.11.78:5672 check inter 5000 rise 2 fall 2 server bhz76 192.168.11.79:5672 backup check inter 5000 rise 2 fall 2 #備用節(jié)點(diǎn)
遠(yuǎn)程模式
遠(yuǎn)程模式 遠(yuǎn)距離通信和復(fù)制 可以實(shí)現(xiàn)雙活的一種模式,簡(jiǎn)稱 Shovel 模式 配置麻煩 現(xiàn)在使用不多
所謂Shovel 就是我們可以把消息進(jìn)行不同數(shù)據(jù)中心的復(fù)制工作 ,可以跨地域的讓兩個(gè)mq 集群互聯(lián)
1.0 Step1 啟動(dòng)RabbitMq 插件 ? rabbitmq-plugins enable amqp_client ? rabbitmq-plugins enable rabbitmq_shovel 2. 0 創(chuàng)建rabbitmq.config 文件 touch /etc/rabbitmq/rabbitmq.config
鏡像模式
集群模式非常經(jīng)典的就是Mirror 鏡像模式 保證100%數(shù)據(jù)不丟失
在實(shí)際工作中用的最多 并且實(shí)現(xiàn)集群非常的簡(jiǎn)單 一般互聯(lián)網(wǎng)大廠 都會(huì)使用這樣構(gòu)建這種鏡像集群模式
Mirror 鏡像隊(duì)列
高可靠 ----------》數(shù)據(jù)同步 —》elang 交換機(jī) ----》3節(jié)點(diǎn)
缺點(diǎn) :沒(méi)有保證橫向擴(kuò)容
多活模式
這種模式也是實(shí)現(xiàn)異地?cái)?shù)據(jù)復(fù)制的主流模式 因?yàn)镾hovel 模式 配置比較復(fù)雜 所以一般來(lái)說(shuō)實(shí)現(xiàn)異地集群都是使用這種雙活或者 多活模型來(lái)實(shí)現(xiàn)的
這種模型需要依賴RabbitMq 的federation 插件 可以實(shí)現(xiàn)持續(xù)的可靠的Amqp 的數(shù)據(jù)通信 多活模式實(shí)際配置與應(yīng)用非常簡(jiǎn)單
RabbitMq 部署架構(gòu)采用雙中心模式 多中心 那么在兩套 或多套 數(shù)據(jù)中心中客部署一套 RabbitMq 集群 客中心的RabbitMq 服務(wù)除了需要為業(yè)務(wù)提供正常的消息服務(wù)外 中心之間還需要實(shí)現(xiàn)部分隊(duì)列消息共享
Federation 插件
Federation 插件 是一個(gè)不需要構(gòu)建Cluster 而在Brokers
之間傳輸消息的高性能插件 Federation 插件 可以在Brokers 或者Cluster 之間傳輸消息 連接的雙方可以使用不同的users 和virtual hosts
雙方也可以使用版本不同的 RabbitMq
和Erlang Federation
插件使用AMQP 協(xié)議通訊 可以接收不連接的傳輸
Federation Exchanges
可以看成Downstream
從Upstream 主動(dòng)拉取消息 但并不是拉取所有消息 必須是在Downstream
上已經(jīng)明確定義Bindings 關(guān)系的 Exchange 也就是有實(shí)際的物理 Queue 來(lái)接收消息 才會(huì)從Upstream 拉取消息組合在一起 ,綁定/解除綁定命令將發(fā)送到Upstream
交換機(jī) 因此 Federation
Exchanges
只接收具有訂閱的消息
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
SpringBoot配置Druid數(shù)據(jù)監(jiān)控代碼實(shí)例
這篇文章主要介紹了SpringBoot配置Druid數(shù)據(jù)監(jiān)控代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06java 字符串的拼接的實(shí)現(xiàn)實(shí)例
這篇文章主要介紹了java 字符串的拼接的實(shí)現(xiàn)實(shí)例的相關(guān)資料,希望通過(guò)本文大家能掌握字符拼接的實(shí)現(xiàn),需要的朋友可以參考下2017-09-09Java實(shí)現(xiàn)上傳Excel文件并導(dǎo)入數(shù)據(jù)庫(kù)
這篇文章主要介紹了在java的基礎(chǔ)上學(xué)習(xí)上傳Excel文件并導(dǎo)出到數(shù)據(jù)庫(kù),感興趣的小伙伴不要錯(cuò)過(guò)奧2021-09-09springboot的maven多模塊混淆jar包的實(shí)現(xiàn)方法
springboot可以使用proguard-maven-plugin 這個(gè)插件 在 pom.xml 中自定義proguard 的指令,本文基于 springboot + maven + proguard 的maven多模塊架構(gòu)進(jìn)行代碼混淆,需要的朋友可以參考下2024-03-03用Maven打成可執(zhí)行jar,包含maven依賴,本地依賴的操作
這篇文章主要介紹了用Maven打成可執(zhí)行jar,包含maven依賴,本地依賴的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08IDEA工程運(yùn)行時(shí)總是報(bào)xx程序包不存在實(shí)際上包已導(dǎo)入(問(wèn)題分析及解決方案)
這篇文章主要介紹了IDEA工程運(yùn)行時(shí),總是報(bào)xx程序包不存在,實(shí)際上包已導(dǎo)入,本文給大家分享問(wèn)題分析及解決方案,通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2020-08-08