您好,登錄后才能下訂單哦!
這篇文章主要講解了“數據庫服務activemq在災備雙活建設中有什么作用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“數據庫服務activemq在災備雙活建設中有什么作用”吧!
activemq是業界非常流行的、功能強大的、開源消息中間件。以快速、支持多種跨語言客戶端和協議著稱;完全支持JMS 1.1 and J2EE 1.4。在各個行業中有大量的應用案例。
由于activemq承擔著消息服務的重要角色,在這篇文章中我們重點講述在災備雙活建設中activemq設計、規劃、部署。
災備雙活建設最完美的架構設計:在同城、異地2個數據中心,在最極端情況下,例如單數據中心垮掉情況下,保證消息零丟失,支持7*24服務要求。
1.1 機房故障
1) 現象描述
消息隊列中間件部署在A、B兩個不同的機房中,客戶端根據負載的策略轉發到對應機房的消息中間件,其中A或者B機房因為斷電或者災難等因素出現故障,無法繼續提供服務。此時僅有一個機房正常。
2) 現象圖示
3) 服務影響
正常情況下,對于客戶端的連接平均分布在兩個機房中,出現單個機房故障后,連接在故障機房中的連接會斷開,正在執行未提交的事務將會回滾,對于發起的新連接不受任何影響,依然可以通過配置的負載策略訪問正常機房中的消息中間件服務。
4) 故障恢復
當機房恢復正常后,啟動消息中間件服務,此時,只要主機、網絡恢復正常,消息中間件服務就可以啟動成功。這時,AB機房按照負載策略繼續處理連接,最終使得每個機房的中間件連接數無限接近。
1.2 服務器DOWN
1) 現象描述
在運行的消息中間件集群架構中,存在N個主機,其中任意N-2個主機DOWN機,不具備服務提供能力,僅剩余大于1個主機存活可以提供服務的場景。
2) 現象圖示
3) 服務影響
主機DOWN掉后,已經連接在該主機消息中間件上的連接會斷開,對應的事務會回滾,新的連接不受到影響。
4) 故障恢復
當主機故障處理后,啟動故障主機,并啟動消息中間件服務。根據負載均衡算法,客戶端連接會重新分配到該主機上的節點。
1.3 消息中間件節點崩潰
1) 現象描述
在運行的消息中間件集群架構中,存在N個節點,其中任意N-2個節點崩潰,不具備服務提供能力,僅剩余大于1個節點存活可以提供服務的場景。
2) 現象圖示
3) 服務影響
當消息中間件節點崩潰后,已經連接在該主機消息中間件上的連接會斷開,對應的事務會回滾,新的連接不受到影響。
4) 故障恢復
當消息隊列節點故障處理后,啟動消息中間件服務。根據負載均衡算法,客戶端連接會重新分配到該節點。
1.1 架構設計要點
●、采用activemq的何種架構來實現上述需求?
采用主從+Broker-Cluster方式來實現,主從架構實現了HA(高可用)功能,借用zookeeper的選舉投票功能,保證“過半即可用”,所以推薦的HA架構的節點數為單數,至少3個節點,任何時候垮掉一個節點都不影響正常使用。
同時結合Broker-Cluster,Broker-Cluster的部署方式可以解決負載均衡和分布式問題,因為單一主從方式無法解決負載均衡的問題。
●、如何保證未消費消息在各個節點間的同步?
采用leveldb(LevelDB是Google開源的持久化KV單機數據庫,具有很高的隨機寫,順序讀/寫性能)實現各個節點間的同步寫,保證數據在同一個Broker-Cluster組下復制,以3個節點為例,同一條堆積消息,在3個節點保持同步,在最極端情況下,即使2個節點的數據文件丟失,也能防止數據丟失。
●、如何保證在災難情況下,消息服務仍然可以正常提供服務?例如考慮最極端情況下,單邊數據中心宕機?
采用2套主從、2套Broker-Cluster,并且保證2個數據中心各包含一套主從的2個節點,如下圖所示,cluster1的2個節點在B中心,cluster2的2個節點在A中心,即使A、B整個數據中心發生災難,都不影響jms服務正常運行。
●、保證在各種災難場景都實現了7*24和消息零丟失嗎?
是的,只要保證一個cluster下的2個節點可用的情況下,不管在任何一種組合下,jms服務都是可用的。
●、客戶端如何來調用集群的jms地址
connectionFactory = new ActiveMQConnectionFactory(
ActiveMQConnection.DEFAULT_USER,
ActiveMQConnection.DEFAULT_PASSWORD,
"failover:(tcp://192.168.40.140:61616,tcp://192.168.40.140:61617,tcp://192.168.40.141:61619,tcp://192.168.40.141:61620,tcp://192.168.40.141:61621,tcp://192.168.40.140:61618)");
如上例子,activemq根據隨機策略,調用任一可用的節點
1.2 架構圖示
●、架構示例圖如下:
◆、哪一個節點是master,沒有要求,那個先啟動那個就可能成為master。
◆、master節點是當前提供服務的節點。
感謝各位的閱讀,以上就是“數據庫服務activemq在災備雙活建設中有什么作用”的內容了,經過本文的學習后,相信大家對數據庫服務activemq在災備雙活建設中有什么作用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。