mq 訊息佇列如何保證其高可用

2021-09-12 11:24:29 字數 817 閱讀 3227

rabbitmq有三個模式:單機模式、普通集群模式、映象集群模式

啟動多個rabbitmq例項,但是實際上queue只在乙個例項上。

消費者消費的時候,如果鏈結到非queue例項上,則需要從queue例項拉取資料。並沒有做到分布式,只是普通集群,可以增加處理速率。

當queue節點宕機時候,如果做了訊息持久化,有可能並不會丟失訊息,但是其他節點不能從queue上拉取資料了。只能等待它重新啟動

開啟多個rabbitmq例項,每個例項的queue和訊息都是一樣的,每次寫資料的時候都會同步到所有的例項上。這樣就做到了分布式

壞處:1、每條資料都要同步,對網路頻寬壓力和消耗很大

2、沒有擴充套件性科研,當queue壓力很大的時候,不能增加機器分擔壓力

映象模式開啟方式:

在rabbitmq後台操作頁面增加映象集群模式策略

kafka乙個最基本的架構認識:多個broker組成,每個broker是乙個節點;你建立乙個topic,這個topic可以劃分為多個partition,每個partition可以存在於不同的broker上,每個partition就放一部分資料。

kafka0.8之後增加了ha機制,就是replica副本機制,每個partition都可以有多個replica,所有的replica會選舉出乙個做leader,其他的是follower。寫資料的時候leader負責往follower上同步資料,讀的時候直接到leader上面讀取(讀寫都只能在leader上執行)。partition會將所有的replica均勻的分布到不同的機器上

當某個partition所在記得機器宕機後,follower會重新選舉出乙個新的leader出來。這樣就實現了高可用

03 引入訊息佇列之後該如何保證其高可用性?

目錄 1 面試題 2 面試官心理分析 3 面試題剖析 1 rabbitmq的高可用性 2 kafka的高可用性 如何保證訊息佇列的高可用啊?如果有人問到你mq的知識,高可用是必問的,因為mq的缺點,我剛才已經說過了,有好多,導致系統可用性降低,等等。所以只要你用了mq,接下來問的一些要點肯定就是圍繞...

如何保證訊息佇列的高可用

1 面試題 如何保證訊息佇列的高可用啊?2 面試官心理分析 如果有人問到你mq的知識,高可用是必問的,因為mq的缺點,我剛才已經說過了,有好多,導致系統可用性降低,等等。所以只要你用了mq,接下來問的一些要點肯定就是圍繞著mq的那些缺點怎麼來解決了。要是你傻乎乎的就乾用了乙個mq,各種問題從來沒考慮...

如何保證訊息佇列的高可用

rabbitmq有三種模式 單機模式,普通集群模式,映象集群模式 單機模式就是在本地啟動自己玩,是demo級別的,在生產環境不會使用!普通集群模式 就是在多台機器上啟動多個rabbitmq例項,當建立乙個queue的時候,只會放在乙個例項上,但是每乙個例項都會同步queue的元資料,當進行消費的時候...