第十一課——codis-server的高可用,對比codis和redis cluster的優缺點


【作業描述】

1.配置codis-ha

2.總結對比codis的集群方式和redis的cluster集群的優缺點
=================================================================================
 

一、codis-ha的部署配置

##codis-ha要獨立於codis集群,單獨配置,也是基於go環境的
1、go方式下載codis-ha:
go get github.com/ngaut/codis-ha
2、進入codis-ha目錄,執行go build命令:

3、啟動codis-ha服務
codis-ha -codis-config="10.7.12.98:18087" -log-level="info" -productName='codis' &
-codis-config參數,值為codis集群的管理控制台端口,也就是dashboard界面訪問的IP:port
-log-level參數,值為日志級別;
-productName參數,值為產品名,可以在codis-proxy的配置文件里找到,如下:
或者通過dashboard管理界面查看:
4、測試codis-server的高可用性
(1)當前codis集群狀態如下:
(2)將redis8379進程殺掉,如下:
codis-ha有如下日志輸出:
通過dashboard管理界面查看如下:
###redis8379節點重新啟動后,會通過codis-ha將redis8379重新添加到集群,作為redis9379節點的從庫
###至此,codis-server的高可用測試結束!
 
二、codis集群和redis cluster的優劣對比
 
 
1、codis架構如下:

(1)Codis是一整套緩存解決方案,包含高可用、數據分片、監控、動態擴態 etc.。走的是 Apps->代理->redis cluster,一定規模后基本都采用這種方式。

(2)Codis引入了Group的概念,每個Group包括1個Redis Master及至少1個Redis Slave,這是和Twemproxy的區別之一。這樣做的好處是,如果當前Master有問題,則運維人員可通過Dashboard“自助式”切換到Slave,而不需要小心翼翼地修改程序配置文件。

為支持數據熱遷移(Auto Rebalance),出品方修改了Redis Server源碼,並稱之為Codis Server。

Codis采用預先分片(Pre-Sharding)機制,事先規定好了,分成1024個slots(也就是說,最多能支持后端1024個Codis Server),這些路由信息保存在ZooKeeper中。

(3) Codis僅負責維護當前Redis Server列表,由運維人員自己去保證主從數據的一致性。
2、redis cluster集群架構如下:
(1) Redis Cluster將所有Key映射到16384個Slot中,集群中每個Redis實例負責一部分,業務程序通過集成的Redis Cluster客戶端進行操作。客戶端可以向任一實例發出請求,如果所需數據不在該實例中,則該實例引導客戶端自動去對應實例讀寫數據。

Redis Cluster的成員管理(節點名稱、IP、端口、狀態、角色)等,都通過節點之間兩兩通訊,定期交換並更新。






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM