更新時(shí)間:2022-12-28 11:58:34 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1148次
普通模式:創(chuàng)建好RabbitMQ集群之后的默認(rèn)模式。
鏡像模式:把需要的隊(duì)列做成鏡像隊(duì)列。
普通集群模式:queue創(chuàng)建之后,如果沒有其它policy,消息實(shí)體只存在于其中 一個(gè)節(jié)點(diǎn),A、B兩個(gè)Rabbitmq節(jié)點(diǎn)僅有相同的元數(shù)據(jù),即隊(duì)列結(jié)構(gòu),但K列的 數(shù)據(jù)僅保存有一份,即創(chuàng)建該隊(duì)列的rabbitmq節(jié)點(diǎn)(A節(jié)點(diǎn)),當(dāng)消息進(jìn)入A節(jié) 點(diǎn)的Queue中后,consumer從B節(jié)點(diǎn)拉取時(shí),RabbitMQ會(huì)臨時(shí)在A、B間進(jìn)行 消息傳輸,把A中的消息實(shí)體取出并經(jīng)過B發(fā)送給consumer,所以consumer可 以連接每一個(gè)節(jié)點(diǎn),從中取消息,該模式存在一個(gè)問題就是當(dāng)A節(jié)點(diǎn)故障后,B 節(jié)點(diǎn)無法取到A節(jié)點(diǎn)中還未消費(fèi)的消息實(shí)體。
鏡像集群模式: 把需要的隊(duì)列做成鏡像隊(duì)列,存在于多個(gè)節(jié)點(diǎn),屬于RabbitMQ的HA方案(鏡 像模式是在普通模式的基礎(chǔ)上,增加一些鏡像策略)該模式解決了普通模式中的數(shù)據(jù)丟失問題,其實(shí)質(zhì)和普通模式不同之處在于,消息實(shí)體會(huì)主動(dòng)在鏡像節(jié)點(diǎn)間同步,而不是在consumer取數(shù)據(jù)時(shí)臨時(shí)拉取,該模 式帶來的副作用也很明顯,除了降低系統(tǒng)性能外,如果鏡像隊(duì)列數(shù)量過多,加之大量的消息進(jìn)入,集群內(nèi)部的網(wǎng)絡(luò)帶寬將會(huì)被這種同步通訊大大消耗掉,所以在 對可靠性要求較高的場合中適用,一個(gè)隊(duì)列想做成鏡像隊(duì)列,需要先設(shè)置policy。
客戶端創(chuàng)建隊(duì)列的時(shí)候,rabbitmq集群根據(jù)“隊(duì)列名稱”自動(dòng)設(shè)置是普通集群模式或鏡像隊(duì)列的集群中有兩種節(jié)點(diǎn)類型:
內(nèi)存節(jié)點(diǎn):只將數(shù)據(jù)保存到內(nèi)存
磁盤節(jié)點(diǎn):保存數(shù)據(jù)到內(nèi)存和磁盤。
內(nèi)存節(jié)點(diǎn)雖然不寫入磁盤,但是它執(zhí)行比磁盤節(jié)點(diǎn)要好,集群中,只需要一個(gè)磁盤節(jié)點(diǎn)來保存數(shù)據(jù)就足夠了如果集群中只有內(nèi)存節(jié)點(diǎn),那么不能全部停止它們,否則所有數(shù)據(jù)消息在服務(wù)器全部停機(jī)之后都會(huì)丟失。
在一個(gè)rabbitmq集群里,有3臺(tái)或以上機(jī)器,其中1臺(tái)使用磁盤模式,其它節(jié)點(diǎn)使用內(nèi)存模式,內(nèi)存節(jié)點(diǎn)無訪問速度更快,由于磁盤IO相對較慢,因此可作為數(shù)據(jù)備份使用。
以上就是關(guān)于“RabbitMQ集群模式”的介紹,大家如果想了解更多相關(guān)知識(shí),不妨來關(guān)注一下本站的RabbitMQ教程,里面還有更豐富的知識(shí)等著大家去學(xué)習(xí),希望對大家能夠有所幫助。