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

2022-06-18 13:12:17 字數 945 閱讀 8468

rabbitmq有三種模式:單機模式,普通集群模式,映象集群模式

單機模式就是在本地啟動自己玩,是demo級別的,在生產環境不會使用!

普通集群模式:

就是在多台機器上啟動多個rabbitmq例項,當建立乙個queue的時候,只會放在乙個例項上,但是每乙個例項都會同步queue的元資料,當進行消費的時候,如果連上了是乙個只有元資料的例項,哪麼這個rabbitmq就會去這個有queue例項資料的機器上拉取下來進行消費。

這種集群方式的缺點:

1.可能會在這個集群內部產生大量的資料傳輸,

可用性沒有保障,比如當queue例項所在的節點宕機了,就會導致queue的資料丟失,就沒有辦法消費

總結:普通集群模式這中方案主要是提高吞吐量的,沒有所謂的高可用性可言,就是說讓集群中多個節點來服務某個queue的讀寫操作。

映象集群模式:

進項集群模式就是每個rabbitmq節點都有queue的映象,就是每個節點都包含這個queue的完整資料。

任何乙個節點宕機了,其他節點行包含了這個queue的完整數,別的consumer都可以到其他節點進行拉取;

但是也有缺點,首先,效能開銷也大了,訊息同步所有機器,導致網路頻寬壓力和消耗很重,第二,沒有擴充套件性可言了,如果某個queue負載很重,加機器,新增的機器也包含了這個queue的所有資料,並沒有辦法線性擴充套件你的queue。

怎麼開啟映象集群模式?

其實很簡單rabbitmq有很好的管理控制台,就是在後台新增乙個策略,這個策略是映象集群模式的策略,指定的時候可以要求資料同步到所有節點,也可以要求就同步到指定數量的節點,然後你再次建立queue的時候,應用這個策略,就會自動將資料同步到其他的節點上去了。

kafka是乙個純分布式的架構,

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

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

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

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

如何保證訊息佇列的高可用?(三)

rabbitmq是比較有代表性的,因為是基於主從做高可用性的。rabbitmq有三種模式 單機模式,普通集群模式,映象集群模式。就是demo級別的,一般就是你本地啟動了玩玩兒的,沒人生產用單機模式 這種方式確實很麻煩,也不怎麼好,沒做到所謂的分布式,就是個普通集群。因為這導致你要麼消費者每次隨機連線...