codis实战讲解(Codis集群部署)
codis实战讲解(Codis集群部署)tickTime=2000 initLimit=10 syncLimit=5 dataDir=/data/codis/zookeeper clientPort=2181 autopurge.snapRetainCount=3 autopurge.purgeInterval=1 server.1=10.100.1.10:12888:13888 server.2=10.100.1.11:12888:13888 server.3=10.100.1.12:12888:13888 记得在对应主机上设置myid,id跟server.后面的数字一样就可以了。zookeeper/conf/zoo.cfgCodis可以直接从github上下载最新版本即可。dashboard在添加proxy的时候会识别主机名,可以利用dns解析,但是最快的就是直接添加到/etc/hosts 集群内的所有机器都添加上,防止之后
简介Codis配置依赖于zookeeper,可以独立部署一套zookeeper集群。
服务可以使用supervisor进行管理。
jdk可以使用jdk1.8
zookeeper使用3.4.14版本
Codis可以直接从github上下载最新版本即可。
主机名配置dashboard在添加proxy的时候会识别主机名,可以利用dns解析,但是最快的就是直接添加到/etc/hosts 集群内的所有机器都添加上,防止之后如果dashboard迁移,忘记配置,导致启动失败。
10.100.1.10 server10
10.100.1.11 server11
10.100.1.12 server12
zookeeper集群
修改配置文件
zookeeper/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/codis/zookeeper
clientPort=2181
autopurge.snapRetainCount=3
autopurge.purgeInterval=1
server.1=10.100.1.10:12888:13888
server.2=10.100.1.11:12888:13888
server.3=10.100.1.12:12888:13888
记得在对应主机上设置myid,id跟server.后面的数字一样就可以了。
echo 1 > /data/codis/zookeeper/myid
Codis配置
使用命令生成dashboard、proxy默认配置文件
mkdir -p config
./codis-dashboard --default-config | tee config/dashboard.toml
./codis-proxy --default-config | tee config/proxy.toml
记得设置product_auth,这个密码要跟codis-server的密码一样。
proxy上还有一个session_auth,这个是连接时候的验证密码,可以跟product_auth不一样。
codis-server配置 我这里使用supervisor管理,所以就不用daemon模式了
daemonize no
protected-mode no
pidfile "/data/codis/pids/redis_7001.pid"
port 7001
timeout 60
loglevel warning
logfile "/data/codis/logs/codis-server-7001.log"
databases 16
rdbcompression yes
dbfilename "dump-7001.rdb"
dir "/data/codis/data"
maxmemory 5gb
maxmemory-policy volatile-lru
appendonly yes
appendfilename "appendonly7001.aof"
appendfsync everysec
no-appendfsync-on-rewrite yes
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
slowlog-log-slower-than 100000
slowlog-max-len 1024
hz 50
aof-rewrite-incremental-fsync yes
masterauth "xxxxxxxxxxxxxxxxxxxx"
requirepass "xxxxxxxxxxxxxxxxxxxx"
可以根据上面的模板,生成多个节点的配置。
生成哨兵配置
port 26379
protected-mode no
daemonize no
配置supervisor
安装supervisor
yum -y install supervisor
由于systemd的句柄和进程数都有限制,不能满足我们的需求,需要修改/usr/lib/systemd/system/supervisord.service文件。
vim /usr/lib/systemd/system/supervisord.service
[Unit]
Description=Process Monitoring and Control Daemon
After=rc-local.service nss-user-lookup.target
[Service]
Type=forking
LimitNOFILE=40960
LimitNPROC=40960
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
[Install]
WantedBy=multi-user.target
需要重载配置,才能生效。
systemctl daemon-reload
配置supervisor
dashboard.ini
[program:codis-dashboard]
command=/opt/codis/codis-dashboard --ncpu=6 --config=/opt/codis/config/dashboard.toml --log=/data/codis/logs/dashboard.log --log-level=WARN
stdout_logfile=/data/codis/logs/codis-dashboard-supervisor_out.log
stderr_logfile=/data/codis/logs/codis-dashboard-supervisor_err.log
proxy.ini
[program:codis-proxy]
command=/opt/codis/codis-proxy --ncpu=8 --config=/opt/codis/config/proxy.toml --log=/data/codis/logs/proxy.log --log-level=WARN
stdout_logfile=/data/codis/logs/codis-proxy-supervisor_out.log
stderr_logfile=/data/codis/logs/codis-proxy-supervisor_err.log
zookeeper.ini
[program:zookeeper]
command=/opt/zookeeper/bin/zkServer.sh start-foreground
stdout_logfile=/data/codis/zookeeper/zookeeper-supervisor_out.log
stderr_logfile=/data/codis/zookeeper/zookeeper-supervisor_err.log
codis-server-7001.ini
[program:codis-server-7001]
command=/opt/codis/codis-server /opt/codis/config/7001.conf
stdout_logfile=/data/codis/logs/codis-server-7001-supervisor_out.log
stderr_logfile=/data/codis/logs/codis-server-7001-supervisor_err.log
codis-server多个就生成多个配置文件
sentinel.ini
[program:redis-sentinel1]
command=/opt/codis/redis-sentinel /opt/codis/config/sentinel1.conf
stdout_logfile=/data/codis/logs/redis-sentinel1-supervisor_out.log
stderr_logfile=/data/codis/logs/redis-sentinel1-supervisor_err.log
codis-fe.ini 这里需要配置zookeeper地址
[program:codis-fe]
command=/opt/codis/codis-fe --ncpu=5 --log=/data/codis/logs/fe.log --log-level=DEBUG --zookeeper=10.100.1.10:2181 10.100.1.11:2181 10.100.1.12:2181 --listen=0.0.0.0:8080
stdout_logfile=/data/codis/logs/codis-fe-supervisor_out.log
stderr_logfile=/data/codis/logs/codis-fe-supervisor_err.log
supervisor加载配置
vim /etc/supervisord.conf
在最后一行追加配置所在目录
....
files = /etc/supervisord.d/*.ini /opt/codis/supervisor/*.ini
然后启动服务
systemctl enable supervisord --now
开始部署
dashboard只能有一个进程,codis-fe也只开一个就可以了。
codis-server根据实际需要配置多个,proxy每台开一个也够用了。
所有进程启动之后,可以通过浏览器访问codis-fe端口,然后在web页面进行操作。
- 添加proxy:New Proxy输入:ip:11080,回车添加,多个proxy就添加多次
- 新建group:New Group,输入数字:1,回车添加,多个就依次增加
- 添加codis-server到对应分组:"Add Server,Data Center 可以不用设置,设置server地址,然后对应组就可以了(注意主从的分散)
- 添加完所有的分组和主从之后记得点击SLAVEOF按钮(绿色小扳手按钮),然后在Add Server下,设置rs:点击ENABLE ALL ,再点击SYNC ALL
- Reebalance All Slots自动分配slot,然后就可以开始用了。