關於如何設計乙個高可用性(部分節點宕機仍然保證可用)的系統,整理下大致思路。
系統前端的設計中,採用比較通用的解決方案,web伺服器(如apache)+ 應用伺服器集群(tomcat或者weblogic)。
客戶端(client)連線web伺服器時需要考慮session的分布式管理,可以用memcached與中介軟體結合提供session管理(可以擴充套件sessionmanager或者自定義filter來實現),為了避免memcached伺服器宕機,需要建立memcached集群,通過magent進行**,**本身也支援集群,因此不需要考慮magent伺服器也掛了的情況。
※ 注1:memcached提供session管理,參考:使用memcached實現session遠端分布式儲存
※ 注2:memcached作為應用的快取層,本身設計就不實現冗餘機制。參考:memcached 集群架構問題歸納
※ 注3:magent是一款開源的memcached**伺服器軟體,使用總結:
※ 注4:memcached + magent 的實現方式,參考:memcached集群/分布式的單點故障
摘錄如下
解決方案2:採用快取**伺服器
採用 magent 快取**,防止單點現象,快取**也可以做備份,通過客戶端連線到快取**伺服器,快取**伺服器連線快取伺服器,快取**伺服器可以連線多台memcached機器可以將每台memcached機器進行資料同步。這樣的架構比較完善了,如果其中一台快取**伺服器down機,系統依然可以繼續工作,如果其中一台memcached機器down掉,資料不會丟失並且可以保證資料的完整性,以上描述的系統架構如圖所示:
在系統持久層的設計方案中,為了實現高可用性,需要提供資料庫集群。
這裡有兩個方面的考慮,首先,多台db伺服器時提供負載均衡的實現。其次,資料的備份、同步,避免一台db伺服器宕機後資料丟失。
※ 注1:資料庫的備份同步可以通過資料庫本身完成(採取區域複製或者挖掘日誌),也可以通過部分第三方同步方案完成。參考:oracle 資料庫之間資料同步方案 或者 sqlserver的集群實現
※ 注2:資料庫基本都有實現集群方案,如oracle的rac,sqlserver的mscs等,參考:資料庫集群技術分析和比較
高可用集群 雙機熱備解決方案
高可用集群 雙機熱備解決方案 一 cluster集群概述 1 方案描述 現代it技術認為,乙個成功系統中資料及作業的重要性已遠超過硬體裝置本身,在一套完善的系統中對資料的安全及保障有著極高的要求。雙機容錯系統是由hp公司提出的全套集群解決方案,結合hp伺服器產品的安全可靠性和集群技術的優點,為使用者...
高可用性方案Keepalived工作原理
隨著系統架構的逐漸演化,伺服器的數量和結構會越來越複雜,例如web伺服器集群的搭建,提高了系統的效能,同時也提高了系統維護的複雜度,我們需要對集群中各台伺服器進行監控,來保證為使用者提供服務的是正常執行的伺服器,整體系統的可用性就至關重要 keepalived提供了很好的高可用性保障服務,它可以檢查...
Dubbo的高可用性
現象 zookeeper註冊中心宕機,還可以消費dubbo暴露的服務。原因 健壯性 l 監控中心宕掉不影響使用,只是丟失部分取樣資料 l 資料庫宕掉後,註冊中心仍能通過快取提供服務列表查詢,但不能註冊新服務 l 註冊中心對等集群,任意一台宕掉後,將自動切換到另一台 l註冊中心全部宕掉後,服務提供者和...