一大型穩健成熟的分佈式系統背後,必然包含不少支撐系統,這些支撐系通通稱爲分佈式系統的基礎設施。分佈式緩存主要用於在高併發環境下,減輕數據庫壓力,提升系統的響應速度和併發呑吐。mysql
基於緩存的分佈式session架構:
web
經過將session以sessionid做爲key,保存到後端的緩存集羣中,使得無論請求如何分配,即便是web server宕機,也不會影響到其它web server經過sessionid從cache server中得到session,這樣既實現了集羣間的session同步行街,又提升了web server的容錯性。
redis
持久化存儲:sql
互聯網領域常見的三種數據存儲方式:1.傳統關係型數據庫mysql,2.Google提出的bigtable概念的開源實現hbase,3.豐富數據類型的key-value存儲redis.數據庫
Master-Slave複製架構:後端
注:master-slave複製架構存在單點故障的問題,最佳方式是採用Master-Master架構,以下圖:緩存
注:一般只開戶一臺master的寫入,另外一臺master僅僅stand by 或做爲讀庫開放,避免數據寫入衝突,防止數據不一致狀況發生。session
HBase:可以解決採用分庫分表策略後,系統沒法進行多表關聯查詢,以及查詢時必須帶路由字段的問題。搜索引擎能夠很好地支持複雜條件的組合查詢,經過搜索引擎構建一張大表可以彌補一部分數據庫拆分所帶來的問題架構
Redis:併發
消息系統:開源的系統消息有:ActiveMQ,Apache的Kafka,RabbitMQ,memchacheQ等
發佈訂閱消息傳輸模型:
基於共享文件系統的Master-slave架構和基於共享數據庫的Master-slave架構: