一、环境:
二、准备
关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
firewall-cmd --state #确保结果为not running
下载相关安装包
Go 运行环境:https://golang.org/doc/install?download=go1.10.7.linux-amd64.tar.gz
Zookeeper:http://apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
Codis:https://github.com/CodisLabs/codis/releases/download/3.2.2/codis3.2.2-go1.8.5-linux.tar.gz
三、安装Go 运行环境
解压程序包
tar xf go1.9.1.linux-amd64.tar.gz
#移动到指定目录
mv go /usr/local/
#把程序包里的命令软连接到系统默认命令目录
ln -sf /usr/local/go/bin/* /usr/bin/
#测试检查是否安装完成
go version
配置GO环境变量
vi /etc/profile
添加如下信息
#GO
export PATH=$PATH:/usr/local/go/bin
#GO Codis
export GOPATH=/usr/local/codis
export PATH=$PATH:$GOPATH/bin
四、安装ZK (三台主机上执行)
请按照常规方式安装ZK,安装过程不再赘述
#codis根目录
mkdir /usr/local/codis
#codis bin目录
mkdir /usr/local/codis/bin
#codis配置文件目录(路径可自定,本例放在根目录下)
mkdir /usr/local/codis/conf
#codis日志文件输出(路径可自定)
mkdir /usr/local/codis/log
tar xf codis3.2.1-go1.7.6-linux.tar.gz
#将解压出的内容移动到codis bin目录
mv codis3.2.2-go1.8.5-linux/* /usr/local/codis/bin
#创建codis-server配置文件,暂时只配置这些,其他默认
vi /usr/local/codis/conf /redis.conf
#允许后台运行
daemonize yes
#设置端口
port 6379
#绑定登录IP,安全考虑,最好是内网
bind 192.168.103.86 127.0.0.1
#命名并指定当前redis的PID路径
pidfile "/data/redis/tmp/redis.pid"
#命名并指定当前redis日志文件路径
logfile "/usr/local/codis/log/redis.log"
#指定RDB文件名,用以备份数据到硬盘并区分不同redis,当使用内存超过可用内存的45%时触发快照功能
dbfilename "dump.rdb"
#指定当前redis的根目录,用来存放RDB/AOF文件
dir "/data/redis/data"
#执行codis-proxy命令生成proxy默认配置
/usr/local/codis/bin/codis-proxy --default-config | tee /usr/local/codis/conf/proxy.conf
编辑proxy.conf, 暂时只配置这些,其他默认
#项目名称,会登记在zookeeper里,如果你想一套zookeeper管理多套codis,就必须区分好
product_name = "gamelife-codis"
#管理的端口,0.0.0.0即对所有ip开放,基于安全考虑,可以限制内网
admin_addr = "0.0.0.0:11080"
#外部配置存储类型,我们用的就是zookeeper,当然也是还有其他可以支持,这里不展开说
jodis_name = "zookeeper"
#配置zookeeper的连接地址,这里是三台就填三台
jodis_addr = "10.0.2.5:2181,10.0.2.6:2181,10.0.2.7:2181"
#codis代理的最大连接数,默认是1000,并发大要调大
proxy_max_clients = 100000
#假如并发太大,你可能需要调这个pipeline参数,大多数情况默认10000就够了
session_max_pipeline = 100000
#并发大也可以改以下参数
backend_max_pipeline = 204800
session_recv_bufsize = "256kb"
session_recv_timeout = "0s"
#执行codis-dashboard命令生成dashboard配置
/usr/local/codis/bin/codis-dashboard --default-config | tee /usr/local/codis/conf/dashboard.conf
编辑dashboard.conf, 暂时只配置这些,其他默认
#外部配置存储类型,我们用的就是zookeeper,
coordinator_name = "zookeeper"
#配置zookeeper的连接地址,这里是三台就填三台
coordinator_addr = "10.0.2.5:2181,10.0.2.6:2181,10.0.2.7:2181"
#项目名称,会登记在zookeeper里,如果你想一套zookeeper管理多套codis,就必须区分好
product_name = " gamelife-codis"
codis-server /usr/local/codis/conf/redis.conf &
查看/usr/local/codis/log/redis.log,确保启动正常
关闭redis
redis-cli -h 127.0.0.1 -p 6379
shutdown
# --ncpu指定使用多少个cpu,一般配置成当前虚拟机或物理机的cpu数
nohup codis-proxy --ncpu=2 --config=/usr/local/codis/conf/proxy.toml --log=/usr/local/codis/log/ proxy.log &
查看/usr/local/codis/log/proxy.log,确保启动正常
# --ncpu指定使用多少个cpu,一般配置成当前虚拟机或物理机的cpu数
nohup codis-dashboard --ncpu=2 --config=/usr/local/codis/conf/dashboard.toml --log=/usr/local/codis/log/dashboard.log &
查看/usr/local/codis/log/proxy.log,确保启动正常
# --zookeeper 配置zk连接地址,这里是三台就填三台,--liste指定codis-fe的web登录端口,也就是我们通过8090来访问这个管理端了,0.0.0.0即对来访IP无限制,其实最好是限制内网
nohup codis-fe --ncpu=2 --zookeeper=192.168.142.186:2181,192.168.142.186:2182,192.168.142.186:2183 --assets-dir=/usr/local/codis/bin/assets --log=/usr/local/codis/log/codis-fe.log --pidfile=/usr/local/codis/bin/codis-fe.pid --log-level=INFO --listen=0.0.0.0:8090 &
查看/usr/local/codis/log/codis-fe.log,确保启动正常
通过web浏览器访问集群管理页面(fe地址:127.0.0.1:8090) 选择我们刚搭建的集群gamelife-codis
第一步,先添加codis-proxy的地址和管理端口,上面设置的是11080
第二步,点击左方的橙色按钮,然后就添加完毕.
第三步,看到下方出现该有的codis-proxy地址就算完成了,然后看到右方的SYNC字样的颜色是绿色,则代表配置正常.
如果要删除记录,点击最右方的红色按钮即可.
第一步,先创建一个组,准备把相关的一组主从放进去
第二步,点击按钮生成这个分组
第三步,添加真实coids-server地址,并选定一个分组,例如刚才创建的分组1
第四步,点击按钮生成配置
第五步,可以看到配置已经登记好,注意sync状态.
第六步,重复1到5步,将3组codis主从(共6台)全部添加完成后,点击重新平衡所有slots数据块(任何添加和删除新旧节点都需要点击这个)
# --dashboard 配置codis-dashboard的IP地址
./codis-ha --dashboard=127.0.0.1:18080 --log=/usr/local/codis/log/codis-HA.log --log-level=INFO &
启动
codis-server /usr/local/codis/conf/redis.conf &
关闭
redis-cli -h 127.0.0.1 -p 6379
shutdown
启动
nohup codis-proxy --ncpu=2 --config=/usr/local/codis/conf/proxy.toml --log=/usr/local/codis/log/ proxy.log &
关闭
codis-admin --proxy=127.0.0.1:11080 --shutdown
查看/usr/local/codis/log/proxy.log,确保启动正常
启动
nohup codis-dashboard --ncpu=2 --config=/usr/local/codis/conf/dashboard.toml --log=/usr/local/codis/log/dashboard.log &
关闭
codis-admin --dashboard=127.0.0.1:18080 --shutdown
启动
nohup codis-fe --ncpu=2 --zookeeper=192.168.142.186:2181,192.168.142.186:2182,192.168.142.186:2183 --assets-dir=/usr/local/codis/bin/assets --log=/usr/local/codis/log/codis-fe.log --pidfile=/usr/local/codis/bin/codis-fe.pid --log-level=INFO --listen=0.0.0.0:8090 &
关闭
ps -ef | grep codis-fe
kill -9 pid
启动
./codis-ha --dashboard=127.0.0.1:18080 --log=/usr/local/codis/log/codis-HA.log --log-level=INFO &
关闭
ps -ef | grep codis-ha
kill -9 pid
#--zookeeper 配置zk连接地址,这里是三台就填三台
codis-admin --remove-lock --product=gamelife-codis --zookeeper=192.168.142.186:2181,192.168.142.186:2182,192.168.142.186:2183