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級別的,一般就是你本地啟動了玩玩兒的,沒人生產用單機模式 這種方式確實很麻煩,也不怎麼好,沒做到所謂的分布式,就是個普通集群。因為這導致你要麼消費者每次隨機連線...