简介
Codis
配置依赖于zookeeper
,可以独立部署一套zookeeper
集群。
服务可以使用supervisor进行管理
下载软件
jdk可以使用jdk1.8:jdk1.8下载地址
zookeeper使用3.4.14版本:华为云镜像zookeeper下载地址
Codis最新版本:codis3.2.2-go1.9.2-linux.tar.gz
主机名配置
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]