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