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