RocketMQ叢集模式對比
摘錄自:https://blog.csdn.net/zhanglianhai555/article/details/76554077
注意:下面說的Master和Slave,都是針對Broker來說的。NameServer本身是無狀態得,可以隨時啟任意多個,組成叢集。
-
單個Master
很顯然,這種方式風險較大,一旦Broker重啟或者宕機時,會導致整個服務不可用,不建議線上環境使用。 -
多Master模式
一個叢集無Slave,全是Master,例如2個Master或者3個Master
優點: 配置簡單,單個Master宕機或重啟維護對應用無影響,在磁碟配置為RAID10時,即使機器宕機不可恢復情況下,由於RAID10磁碟非常可靠,訊息也不會丟(非同步刷盤丟失少量訊息,同步刷盤一條不丟)。效能最高。
缺點: 單臺機器宕機期間,這臺機器上未被消費的訊息在機器恢復之前不可訂閱,訊息實時性會受到影響。 -
多Master多Slave模式,非同步複製
每個Master配置一個Slave,有多對Master-Slave,HA採用非同步複製方式,主備有短暫訊息延遲,毫秒級。
優點: 即使磁碟損壞,訊息丟失的非常少,且訊息實時性不會受影響,因為Master宕機後,消費者仍然可以從Slave消費,此過程對應用透明,不需要人工干預。效能同多Master模式幾乎一樣。
缺點: Master宕機,磁碟損壞情況,會丟失少量訊息。 -
多Master多Slave模式,同步雙寫
每個Master配置一個Slave,有多對Master-Slave,HA採用同步雙寫方式,主備都寫成功,嚮應用返回成功。
優點: 資料與服務都無單點,Master宕機情況下,訊息無延遲,服務可用性與資料可用性都非常高。
缺點: 效能比非同步複製模式略低,大約低10%左右,傳送單個訊息的RT會略高。