Codis安裝部署Redis5.x集羣

1.Go安裝
Go下載地址 解壓

tar zxf go1.9.1.linux-amd64.tar.gz -C /usr/local/ 
-------------------------------------------------------
mkdir -p /usr/local/gopath   ###go第三方包的安裝包路徑 

添加環境變量

 echo "export GOROOT=/usr/local/go" >> /etc/profile
 echo "export PATH=$PATH:$GOROOT/bin" >> /etc/profile
 echo "export GOPATH=/usr/local/gopath" >> /etc/profile
 source /etc/profile

查看版本

go version

Zookeeper安裝和僞集羣搭建

java -version  //查看服務器有無java環境(沒有的話自行安裝一般都有)

Zookeeper下載地址
https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/
解壓

tar -xvf zookeeper-3.4.14.tar.gz
mv zookeeper-3.4.14 /usr/local/zookeeper

創建相關目錄

mkdir -p /usr/local/zookeeper/data_{1,2,3}
mkdir -p /usr/local/zookeeper/log_{1,2,3}

設置環境變量

echo "export ZOOKEEPER_HOME=/usr/local/zookeeper" >> /etc/profile
echo "export PATH=$PATH:$ZOOKEEPER_HOME/bin" >> /etc/profile
source /etc/profile

修改Zookeeper配置文件
https://www.cnblogs.com/EasonJim/p/7482961.html

cd /usr/local/zookeeper/conf/
cp  zoo_sample.cfg   zoo1.cfg 
cp  zoo_sample.cfg   zoo2.cfg 
cp  zoo_sample.cfg   zoo3.cfg 

zoo1.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/data_1
dataLogDir=/usr/local/zookeeper/log_1
clientPort=2181
#maxClientCnxns=60
#autopurge.snapRetainCount=3
#autopurge.purgeInterval=1
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

zoo2.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/data_2
dataLogDir=/usr/local/zookeeper/log_2
clientPort=2182
#maxClientCnxns=60
#autopurge.snapRetainCount=3
#autopurge.purgeInterval=1
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

zoo3.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/data_3
dataLogDir=/usr/local/zookeeper/log_3
clientPort=2183
#maxClientCnxns=60
#autopurge.snapRetainCount=3
#autopurge.purgeInterval=1
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

其中2888表示zookeeper程序監聽端口,3888表示zookeeper選舉通信端口
說明

server.A=B:C:D
	A 是一個數字,表示這個是第幾號服務器;
    B 是這個服務器的 ip 地址;
    C 表示的是這個服務器與集羣中的 Leader 服務器交換信息的端口;
    D 表示的是萬一集羣中的 Leader 服務器掛了,需要一個端口來重新進行選舉,選出一個新的Leader,而這個端口就是用來執行選舉時服務器相互通信的 端口。

分別在data_{1/2/3}文件夾下創建myid文件,並寫入1/2/3

echo "1">/usr/local/zookeeper/data_1/myid
echo "2">/usr/local/zookeeper/data_2/myid
echo "3">/usr/local/zookeeper/data_3/myid

啓動zookeeper

cd /usr/local/zookeeper/bin
zkServer.sh start zoo1.cfg
zkServer.sh start zoo2.cfg
zkServer.sh start zoo3.cfg

查看啓動狀態

zkServer.sh status zoo1.cfg
 zkServer.sh status zoo2.cfg
 zkServer.sh status zoo3.cfg

在這裏插入圖片描述
下載Codis
放在go第三方安裝包目錄裏

mkdir -p $GOPATH/src/github.com/CodisLabs
cd /usr/local/gopath/src/github.com/CodisLabs
git clone https://github.com/CodisLabs/codis.git -b release3.2
cd codis
##編譯
make
##測試
make gotest

提取有用的程序

mkdir /usr/local/codis
cp -rp bin admin config /usr/local/codis/

啓動coids

cd /usr/local/codis/config
vim dashboard.toml
#使用zookeeper作爲外部存儲
coordinator_name = "zookeeper"
coordinator_addr = "127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183"
#zookeeper的節點,多個節點的情況,使用逗號分割
#coordinator_addr = "192.168.66.100:2181,192.168.66.100:2182,192.168.66.100:2183"
product_name = "codis-demo"
product_auth = ""
#管控臺地址
admin_addr = "0.0.0.0:18080"

啓動dashboard

cd /usr/local/codis
./admin/codis-dashboard-admin.sh start
#可以查看log確認狀態 /usr/local/codis/log/codis-dashboard.log.

停止(這個千萬不要kill進程關掉,會起不來)
如果出現服務器宕機等異常情況 則進入zk的命令行

zkCli.sh -server 127.0.0.1:2181
ls /
rmr codis

停止命令

./admin/codis-dashboard-admin.sh stop

#查看啓動情況
ps -ef| grep codis

部署codis-fe管理後臺
1.修改啓動文件

vim /usr/local/codis/admin/codis-fe-admin.sh
COORDINATOR_NAME="zookeeper"
#多個節點的情況,使用逗號分割
COORDINATOR_ADDR="127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183"
CODIS_FE_ADDR="0.0.0.0:9090"

啓動 fe

cd /usr/local/codis
./admin/codis-fe-admin.sh start
ss -tpnl|grep 9090
# 可以查看log確認狀態 /usr/local/codis/log/codis-fe.log.
#後臺管理地址
CODIS_FE_ADDR="0.0.0.0:9090"

部署codis-server加入集羣
在/usr/local/codis/config/下的redis.conf 複製一份並改名爲redis6369.conf
redis6369.conf修改瞭如下參數(僅用於測試)

protected-mode no
port 6369
pidfile /usr/local/codis/log/redis_6369.pid
logfile "/usr/local/codis/log/redis_6369.log"
dbfilename dump_6369.rdb
dir /usr/local/codis/log/
appendfilename "appendonly.aof"
cp redis6369.conf  redis6370.conf 
cp redis6369.conf  redis6371.conf 
sed -i 's/6369/6370/g' redis6370.conf
sed -i 's/6369/6371/g' redis6371.conf

啓動codis-server服務

/usr/local/codis/bin/codis-server /usr/local/codis/config/redis6369.conf
/usr/local/codis/bin/codis-server /usr/local/codis/config/redis6370.conf
/usr/local/codis/bin/codis-server /usr/local/codis/config/redis6371.conf

在這裏插入圖片描述
部署codis-proxy代理服務

proxy是對外提供redis服務的入口。

/usr/local/codis/config/proxy.toml
#外部存儲
jodis_name = "zookeeper"
#zookeeper節點  多個節點的情況,使用逗號分割
jodis_addr = "127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183"
product_name = "codis-demo"
product_auth = ""
#綁定的地址
admin_addr = "0.0.0.0:11080"
proto_type = "tcp4"
#代理服務器地址
proxy_addr = "0.0.0.0:19000"

修改啓動文件並啓動,指向dashboard IP:PORT

vim /usr/local/codis/admin/codis-proxy-admin.sh
CODIS_DASHBOARD_ADDR="127.0.0.1:18080"
#CODIS_DASHBOARD_ADDR="真實IP:18080"

啓動

/usr/local/codis/admin/codis-proxy-admin.sh  start
ss -tpnl |grep 19000

proxy啓動默認會自動註冊到dashboard中,也可以在fe中手動添加
在這裏插入圖片描述
部署redis-sentinel實現集羣HA(手動在頁面部署吧,)
1.修改配置文件

vi /usr/local/codis/config/sentinel.conf
port 26379
dir "/tmp"
protected-mode no

啓動
#sentinel部署官方腳本,是根據codis-server啓動腳本進行修改
#源文件目錄:./ansible/roles/redis-sentinel/templates/redis-sentinel-admin.sh

/usr/local/codis/admin/codis-sentinel-admin.sh start
ss -tpnl |grep 26379

https://www.cnblogs.com/jenvid/p/10184516.html
https://segmentfault.com/a/1190000022228051
https://www.pianshen.com/article/245375875/#51_zookeeper_189
https://www.cnblogs.com/reblue520/p/6874925.html
https://blog.csdn.net/yanggd1987/article/details/77285530?utm_source=blogxgwz5
https://blog.51cto.com/jxzhfei/1934862

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章