Redis 集群解決方案,Codis 2.0 發布
Codis 是一個分布式 Redis 解決方案, 對于上層的應用來說, 連接到 Codis Proxy 和連接原生的 Redis Server 沒有明顯的區別 (不支持的命令列表), 上層應用可以像使用單機的 Redis 一樣使用, Codis 底層會處理請求的轉發, 不停機的數據遷移等工作, 所有后邊的一切事情, 對于前面的客戶端來說是透明的, 可以簡單的認為后邊連接的是一個內存無限大的 Redis 服務.
Codis 由四部分組成:
-
Codis Proxy (codis-proxy)
</li> -
Codis Manager (codis-config)
</li> -
Codis Redis (codis-server)
</li> -
ZooKeeper
</li> </ul>codis-proxy 是客戶端連接的 Redis 代理服務, codis-proxy 本身實現了 Redis 協議, 表現得和一個原生的 Redis 沒什么區別 (就像 Twemproxy), 對于一個業務來說, 可以部署多個 codis-proxy, codis-proxy 本身是無狀態的.
codis-config 是 Codis 的管理工具, 支持包括, 添加/刪除 Redis 節點, 添加/刪除 Proxy 節點, 發起數據遷移等操作. codis-config 本身還自帶了一個 http server, 會啟動一個 dashboard, 用戶可以直接在瀏覽器上觀察 Codis 集群的運行狀態.
codis-server 是 Codis 項目維護的一個 Redis 分支, 基于 2.8.13 開發, 加入了 slot 的支持和原子的數據遷移指令. Codis 上層的 codis-proxy 和 codis-config 只能和這個版本的 Redis 交互才能正常運行.
Codis 依賴 ZooKeeper 來存放數據路由表和 codis-proxy 節點的元信息, codis-config 發起的命令都會通過 ZooKeeper 同步到各個存活的 codis-proxy.
Codis 支持按照 Namespace 區分不同的產品, 擁有不同的 product name 的產品, 各項配置都不會沖突.
目前 Codis 已經是穩定階段,目前豌豆莢已經在使用該系統。
架構:
Codis 2.0 發布,主要改進:-
重新設計 request dispatcher,現在 pipeline 和 mget/mset requests 都比之前快很多!
</li> -
Codis-server (forked redis) 升級至 2.8.21,包含上流 Redis 的 bug 修復,還有優化,比如更低的內存消耗和更快的遷移。
</li> -
優化 zk 連接,現在更穩定
</li> -
遷移(和自動均衡)任務現在保存在 zk,儀表盤重啟的時候將會繼續。
</li> -
支持 Redis AUTH 命令
</li> -
更多配置選項,請看 sample/config.ini
</li> </ul>更多改進內容請看發行說明。
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!
-