redis cache集群方案

2021-07-08 13:47:55 字數 532 閱讀 4127

本文目標是設計高可用,易伸縮的rediscache集群方案,需求: 

1. 總體架構

2. keeper

負責在zookeeper中註冊維護redis例項的資訊。keeper和redis位於同一臺機器,keeper通過local host位址訪問它維護的redis例項。 

2.1. 啟動

keeper啟動過程的輸入: 

keeper啟動完成的工作: 

2.2. redis例項故障的檢測與轉移

故障轉移耗**估: 

2.3 水平擴容的過程

水平擴容十分簡便,過程如下 

3.client

3.1 資料分片

通過一致性雜湊演算法,在client端實現資料分片。 

3.2 動態容錯

client訪問redis例項的過程可以分為三步: 

可能在上述的第1步之後,第3步之前發生redis集群的動態變化,導致redis例項訪問失敗。此時需要進行重試訪問,超過一定次數之後,向上層返回錯誤。具體流程圖如下所示: 

**:

session 集群方案

背景 假設某個 是由多台伺服器提供服務,nginx採用輪詢機制做負載均衡,那麼同乙個ip訪問該 時,請求就可能會被分配到不同的伺服器上,如果session沒有實現共享,就會出現重複登陸授權的情況。session 集群主要有兩個方案 session 複製和session共享 session 複製 是指...

Memcache 集群方案

一 偽集群方案 最常見的做法 memcache安裝後,在一台機器或多台機器上啟動多個例項,客戶端配置memcache節點的ip,port即可。由客戶端實現分布式快取效果,其實是偽集群。memcache節點之間不通訊,無資料備份,負載均衡由客戶端實現,存在單點故障。客戶端可設定故障恢復和故障轉移機制。...

websocket (java)集群方案

redis 用來存使用者與伺服器的關係 redis可以任意替換為一種儲存形式 伺服器 a 會訂閱topic 為 websocket a 的訊息 伺服器 b 會訂閱topic 為 websocket b 的訊息 kafka 用來接收推送訊息 替換為任意一種mq 如果使用者1需要給使用者3傳送資訊,如果...