codis集群搭建
阿新 • • 發佈:2018-03-29
dmi abs con OS labs das add 事情 name
Codis 是一個分布式 Redis 解決方案, 對於上層的應用來說, 連接到 Codis Proxy 和連接原生的 Redis Server 沒有明顯的區別 (不支持的命令列表), 上層應用可以像使用單機的 Redis 一樣使用, Codis 底層會處理請求的轉發, 不停機的數據遷移等工作, 所有後邊的一切事情, 對於前面的客戶端來說是透明的, 可以簡單的認為後邊連接的是一個內存無限大的 Redis 服務
部署環境介紹
三臺節點,各自起sentinel,各自起proxy,一臺擔任dashboard,並且交叉組成集群組建三套codis_proxy_group,並且在原有codis集群上新加項目
安裝配置zookeeper
官方下載站點
http://zookeeper.apache.org/releases.html#download
安裝
tar zxf zookeeper-3.4.9.tar.gz mv /opt/elk/zookeeper-3.4.9 /usr/local/zookeeper echo " 172.31.18.66 zk1 172.31.20.206 zk2 172.31.23.183 zk3" >> /etc/hosts mkdir /data/zookeeper #創建zk數據存放目錄 echo 1 > /data/zookeeper/myid echo 2 > /data/zookeeper/myid echo 3 > /data/zookeeper/myid # 創建myid文件,三臺機器上不可相同
配置
cd /usr/local/zookeeper/conf cp zoo_sample.cfg zoo.cfg vim zoo.cfg tickTime=2000 initLimit=10 syncLimit=5 dataDir=/home/zk_data clientPort=2181 server.1=172.31.18.66:2888:3888 server.2=172.31.20.206:2888:3888 server.3=172.31.23.183:2888:3888
Zookeeper默認會將控制臺信息輸出到啟動路徑下的zookeeper.out中
顯然在生產環境中我們不能允許Zookeeper這樣做,通過如下方法,可以讓Zookeeper輸出按尺寸切分的日誌文件:
zookeeper.root.logger=INFO, CONSOLE改為zookeeper.root.logger=INFO, ROLLINGFILE #修改conf/log4j.properties
ZOO_LOG4J_PROP="INFO,CONSOLE"改為ZOO_LOG4J_PROP="INFO,ROLLINGFILE" #修改bin/zkEnv.sh文件
zk啟動測試
/usr/local/zookeeper/bin/zkServer.sh start #啟動zk /usr/local/zookeeper/bin/zkServer.sh status #查看zk啟動狀態 正常三臺節點,應有兩臺follower和一臺leader
安裝配置codis
codis安裝
安裝GO環境 cd /usr/lib/golang/src/github.com/CodisLabs/codis go get github.com/wandoulabs/codis go get -u github.com/tools/godep
下載安裝codis 官網https://github.com/CodisLabs/codis,這裏使用go安裝 cd /usr/lib/golang/src/github.com/CodisLabs/codis go get github.com/wandoulabs/codis go get -u github.com/tools/godep 切換目錄編譯 cd $GOPATH/src/github.com/CodisLabs/codis/ make make gotest
codis配置
cd /data/apps/codis/src/github.com/CodisLabs/codis/config vim dashboard.toml coordinator_addr = "172.31.18.66:2181,172.31.20.206:2181,172.31.23.183:2181" #zk地址 product_name = "us-sn-bs" #項目名稱。此名稱將會顯示在dashboard的頁簽上
product_auth = "57b0a738d60c1d81940ec3eff7b51d4b" #proxy連接dashboard的認證密碼
admin_addr = "0.0.0.0:18080" #codis-adim 地址
vim proxy.toml product_name = "us-sn-bs" #項目名稱。此名稱將會顯示在dashboard的頁簽上,與dashboard配置保持一樣
vim ../admin/codis-fe-admin.sh
COORDINATOR_ADDR="172.31.18.66:2181,172.31.20.206:2181,172.31.23.183:2181" #zk地址
vim ../admin/codis-proxy-admin.sh
CODIS_DASHBOARD_ADDR="172.31.18.66:18080" #dashboard地址和端口
codis集群搭建