1. 程式人生 > >codis集群搭建

codis集群搭建

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集群搭建