高效、安全的部署codis3集群

1. 部署架构及组件用途

1.1. 官方架构图

在这里插入图片描述

1.2. 组件用途

组件名称用途
Codis Proxy客户端连接Redis代理服务,处理客户端请求,codis-proxy本身实现了Redis协议,因此客户端访问Codis Proxy跟访问原生的Redis没什么区别。
Codis Dashboar集群管理工具,支持 codis-proxy、codis-server 、sentinel的添加、删除,以及据迁移等操作;在集群状态发生改变时,codis-dashboard 维护集群下所有 codis-proxy 的状态的一致性,可以理解为控制台。
Codis Fe集群管理界面,多个集群实例可以共享同一个前端展示页面;通过配置文件可以管理后端dashboard列表(配置文件可自动更新)。
Codis Server是Codis项目维护的一个Redis分支,基于2.8.13开发,加入了slot的支持和原子的数据迁移;Codis上层的codis-proxy和codis-dashboard只能和这个版本的Redis交互才能正常运行。
ZookeeperCodis 依赖 ZooKeeper 来存放数据路由表和 codis-proxy 节点的元信息,codis-config 发起的命令都会通过 ZooKeeper 同步到各个存活的 codis-proxy。

1.3. 节点规划

组件节点备注
Codis Server192.168.11.11:6441
Codis Server192.168.11.11:6442
Codis Server192.168.11.11:6443
Codis Server192.168.11.11:6444
Codis Server192.168.11.12:6441
Codis Server192.168.11.12:6442
Codis Server192.168.11.12:6443
Codis Server192.168.11.12:6444
Codis Sentinel192.168.11.11:26441
Codis Sentinel192.168.11.12:26441
Codis Sentinel192.168.11.13:26441
Codis Proxy192.168.11.11:11080Proxy的admin地址,也是需要对外暴露的代理地址
Codis Dashboar192.168.11.11:18080Codis Dashboar的admin地址
Zookeeper192.168.11.11:2888:3888客户端端口:3181,通信端口:2888,选举端口:3888
Zookeeper192.168.11.12:2888:3888客户端端口:3181,通信端口:2888,选举端口:3888
Zookeeper192.168.11.13:2888:3888客户端端口:3181,通信端口:2888,选举端口:3888

2. 初始配置启动

2.1. 基础环境安装

2.1.1. 安装依赖包:

# yum -y install meicurialgitgcc autoconf automake libtool gcc glibc gcc-c++ make git m4 go

2.1.2. 安装JDK

2.1.2.1. 方法一:RPM包安装
# rpm -ivh jdk-8u172-linux-x64.rpm
# java -version
java version "1.8.0_172"
Java(TM) SE Runtime Environment (build 1.8.0_172-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.172-b11, mixed mode)
2.1.2.2. 方法二:压缩包解压

解压安装包

# cd /opt/app/softwares
# tar zxvf java-1.8.0-openjdk.linux.x86_64.tar.gz -C /var/lib/
# cd /var/lib
# mv java-1.8.0-openjdk.linux.x86_64 jdk1.8

配置环境变量

# vim /etc/profile

export JAVA_HOME=/var/lib/jdk1.8
export JRE_HOME=$JAVA_HOME/jre
export JAVA_PATH=$JAVA_HOME/bin:$JRE_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_PATH:

# source /etc/profile
# java -version

^: JDK下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

2.1.3. 部署 zookeeper集群

如果有现成的zookeeper集群,可直接引用。

2.1.3.1. 下载 zookeeper
# cd /opt/app/softwares
# wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
2.1.3.2. 解压安装包
# cd /opt/app/softwares
# tar zxvf zookeeper-3.4.14.tar.gz -C /var/lib
# cd /var/lib
# mv zookeeper-3.4.14/ zookeeper
2.1.3.3. 编辑配置文件
# cd /var/lib/zookeeper/conf
# cp zoo_sample.cfg zoo.cfg
# mkdir -p /var/lib/zookeeper/data
# mkdir -p /var/lib/zookeeper/logs
# vim /var/lib/zookeeper/conf/zoo.cfg
......
......
dataDir=/var/lib/zookeeper/data
dataLogDir=/var/lib/zookeeper/logs
clientPort=3181
autopurge.purgeInterval=1
server.1= 192.168.11.11:2888:3888
server.2= 192.168.11.12:2888:3888
server.3= 192.168.11.13:2888:3888

^: 在zoo.cfg这个文件中,配置集群信息是存在一定的格式:service.N =YYY:A:B N:代表服务器编号(也就是myid里面的值) YYY:服务器地址 A:表示 Flower 跟 Leader的通信端口,简称服务端内部通信的端口(默认2888) B:表示 是选举端口(默认是3888)。

2.1.3.4. 设置 myid
/* 192.168.11.11 */
# cd /var/lib/zookeeper
# echo 1 > /var/lib/zookeeper/data/myid

/* 192.168.11.12 */
# cd /var/lib/zookeeper
# echo 2 > /var/lib/zookeeper/data/myid

/* 192.168.11.13 */
# cd /var/lib/zookeeper
# echo 3 > /var/lib/zookeeper/data/myid
2.1.3.5. 编辑脚本

修改bin/zkEnv.sh脚本:

# vim /var/lib/zookeeper/bin/zkEnv.sh
将 ZOO_LOG_DIR="." 修改为 ZOO_LOG_DIR="/var/lib/zookeeper/logs"
将 ZOO_LOG4J_PROP="INFO,CONSOLE" 修改为 ZOO_LOG4J_PROP="INFO,ROLLINGFILE"

修改bin/zkServer.sh脚本:

# vim /var/lib/zookeeper/bin/zkServer.sh
将 ZOOBIN="${BASH_SOURCE-$0}" 修改为 ZOOBIN=`readlink -f "${BASH_SOURCE-$0}"`
增加一行环境变量 SERVER_JVMFLAGS="-Xms4096m -Xmx4096m",设定进程内存

修改bin/zkCli.sh脚本:

# vim /var/lib/zookeeper/bin/zkCli.sh
将 ZOOBIN="${BASH_SOURCE-$0}" 修改为 ZOOBIN=`readlink -f "${BASH_SOURCE-$0}"`
2.1.3.6. 启动 zookeeper
# cd /var/lib/zookeeper/bin
# ./zkServer.sh start ../conf/zoo.cfg
# ps -ef| grep zoo |grep -v grep

如需停止zookeeper,执行如下命令:
# cd /var/lib/zookeeper/bin
# ./zkServer.sh stop /var/lib/zookeeper/conf/zoo.cfg
2.1.3.7. 查看节点状态
# /var/lib/zookeeper/bin/zkServer.sh status
192.168.11.11		Mode: follower
192.168.11.12		Mode: leader
192.168.11.13		Mode: follower
2.1.3.8. 查看节点日志
# tail  -f /var/lib/zookeeper/logs/zookeeper.out
# tail  -f /var/lib/zookeeper/logs/zookeeper.log

2.2. Go环境和Codis安装

2.2.1. 准备工作

以往版本中需要先安装go环境、再搭建codis集群,在这里我们用混合版本包直接部署即可,所有节点均需部署。

下载安装包
方法一:
# cd /opt/app/softwares/
# wget https://github.com/CodisLabs/codis/releases/codis3.2.1-go1.8.3-linux.tar.gz

方法二:
# cd /opt/app/softwares/
# yum install git -y
# git clone https://github.com/tanruixing88/redis-migrate-tool.git

解压缩:
# mkdir -p /data/test_codis/codis3/{log,markingshare,markingconfig}
# cd /opt/app/softwares/
# tar zxvf  codis3.2.1-go1.8.3-linux.tar.gz -C /data/test_codis/codis3

新建目录:
# mkdir -p /data/test_codis/codis3/{log,markingshare,markingconfig} 

2.2.2. Codis实例初始配置文件

/* 192.168.11.11 */  /* 192.168.11.12 */ 

# vim /data/test_codis/codis3/markingconfig/6441.conf
daemonize yes 
bind 0.0.0.0 
port 6441 
#masterauth "XXXXXXXXX" 
#requirepass "XXXXXXXXX" 
save "" 
maxmemory 6GB
dir "/data/test_codis/codis3/markingconfig"
logfile "/data/test_codis/codis3/log/6441.log" 
pidfile "/data/test_codis/codis3/log/6441.pid"
# vim /data/test_codis/codis3/markingconfig/6442.conf
daemonize yes 
bind 0.0.0.0 
port 6442 
#masterauth "XXXXXXXX" 
#requirepass "XXXXXXXX" 
save "" 
maxmemory 6GB 
dir "/data/test_codis/codis3/markingconfig"
logfile "/data/test_codis/codis3/log/6442.log" 
pidfile "/data/test_codis/codis3/log/6442.pid"
# vim /data/test_codis/codis3/markingconfig/6443.confdaemonize yes 
bind 0.0.0.0 
port 6443 
#masterauth "XXXXXXXX" 
#requirepass "XXXXXXXX" 
save "" 
maxmemory 6GB 
dir "/data/test_codis/codis3/markingconfig"
logfile "/data/test_codis/codis3/log/6443.log" 
pidfile "/data/test_codis/codis3/log/6443.pid"
# vim /data/test_codis/codis3/markingconfig/6444.conf 
daemonize yes 
bind 0.0.0.0 
port 6444 
#masterauth "XXXXXXXX" 
#requirepass "XXXXXXXX" 
save "" 
maxmemory 6GB 
dir "/data/test_codis/codis3/markingconfig"
logfile "/data/test_codis/codis3/log/6444.log" 
pidfile "/data/test_codis/codis3/log/6444.pid"

2.2.3. 哨兵实例配置文件

/* 192.168.11.11 */  /* 192.168.11.12 */ /* 192.168.11.13 */

# vim  /data/test_codis/codis3/markingconfig/codis.sentinel.conf 
port 26441 
bind 0.0.0.0 
daemonize yes 
protected-mode no
dir "/data/test_codis/codis3/markingconfig/"
logfile "/data/test_codis/codis3/log/sentinel_26441.log"

2.2.4. proxy.conf实例配置文件

/* 192.168.11.11 */

# vim /data/test_codis/codis3/markingconfig/proxy.conf

## 集群名称,参考 dashboard 参数说明
product_name = "MarkingShare" 

## 集群密码,默认为空
#product_auth = "XXXXXXXX" 
#session_auth = "XXXXXXXX" 

## RESTful API 端口,对外暴露的代理地址
admin_addr = "192.168.11.11:11080" 

## Redis 端口类型,接受 tcp/tcp4/tcp6/unix/unixpacket
proto_type = "tcp4" 

## Redis 端口地址或者路径
proxy_addr = "192.168.11.11:19000"
 
## Jodis 注册 zookeeper 地址
jodis_addr = "192.168.11.11:3181,192.168.11.12:3181,192.168.11.13:3181" 

## Jodis 注册 session timeout 时间,单位 second
jodis_timeout = 10 

# Jodis 注册 zookeeper 的路径。jodis_compatible 3.0以上必须为false,true为兼容2.0 
jodis_compatible = false 
jodis_name = "zookeeper"

## 与 codis-server 探活周期,单位 second,0 表示禁止 
backend_ping_period = 5

## 与 client 连接最大读超时,单位 second,0 表示禁止
session_max_timeout = 1800

## 与 client 连接读写缓冲区大小,单位 byte
session_max_bufsize = 131072 

## 与 client 连接最大的 pipeline 大小
session_max_pipeline = 1024 

## 与 client 的 tcp keepalive 周期,仅 tcp 有效,0 表示禁止
session_keepalive_period = 60

2.2.5. dashboard.conf实例配置文件

/* 192.168.11.11 */
# vim /data/test_codis/codis3/markingconfig/dashboard.conf

coordinator_name = "zookeeper" 
## 修改zk地址
coordinator_addr = "192.168.11.11:3181,192.168.11.12:3181,192.168.11.13:3181"
## product_name为proxy名称,一个zk管理多个codis
product_name = "MarkingShare" 
## 集群密码,默认为空,product_auth为redis密码
#product_auth = "XXXXXXXX"
## Set bind address for admin(rpc), tcp only. 
admin_addr = "192.168.11.11:18080"

2.2.6. 配置codis-fe

/* 192.168.11.11 */

# vim /redis/data/config/codis.json		## 端口为proxy端口
[
{
	"name": "codis-test1",
	"dashboard": "192.168.11.11:18080"  
}
] 

2.3. 组件启动

2.3.1. 启动codis服务

/* 192.168.11.11 */	/* 192.168.11.12 */

启动codis实例:
# cd /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/
# ./codis-server /data/test_codis/codis3/markingconfig/6441.conf 
# ./codis-server /data/test_codis/codis3/markingconfig/6442.conf 
# ./codis-server /data/test_codis/codis3/markingconfig/6443.conf 
# ./codis-server /data/test_codis/codis3/markingconfig/6444.conf

查看进程:
# ps -ef|grep -v grep|grep "codis-server 0.0.0.0:64"

查看角色:
# cd /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/
# ./redis-cli -p 6441  role
# ./redis-cli -p 6442  role
# ./redis-cli -p 6443  role
# ./redis-cli -p 6444  role

查看日志:
# tail -50f /data/test_codis/codis3/log/6441.log
# tail -50f /data/test_codis/codis3/log/6442.log
# tail -50f /data/test_codis/codis3/log/6443.log
# tail -50f /data/test_codis/codis3/log/6444.log

2.3.2. 启动哨兵进程

/* 192.168.11.11 */	/* 192.168.11.12 */	/* 192.168.11.13 */
启动哨兵:
# cd /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/
# ./redis-sentinel /data/test_codis/codis3/markingconfig/codis.sentinel.conf

查看进程:
# ps -ef|grep -v grep|grep "redis-sentinel 0.0.0.0:26441"

查看哨兵集群网络:
# cd /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/
# ./redis-cli -p 26441 info Sentinel

查看日志:
# tail -f /data/test_codis/codis3/log/sentinel_26441.log



如需关闭codis sentinel服务,则执行如下命令
# cd /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/
# ./redis-cli -p 26441 shutdown

# ps -ef|grep -v grep|grep "redis-sentinel 0.0.0.0:26441"
若需进行主从切换,按如下流程进行操作:

尽量不要通过dashboard的页面进行主从切换,dashboard页面提升从实例为主实例仍需要手工进行slaveof 的指定操作或者手工点击页面的“sync”按钮。

1)查看哨兵监控信息:
# cd /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/
# ./redis-cli -p 26441 info Sentinel


2)对指定master执行主从切换:
# cd /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/
# ./redis-cli -p 26441 sentinel failover MarkingShare-1

3)查看哨兵日志:
# tail -f /data/test_codis/codis3/log/sentinel_26441.log

2.3.3. 启动Codis Proxy进程

启动进程:
# cd /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/
# nohup /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-proxy --ncpu=4 --# config=/data/test_codis/codis3/markingconfig/proxy.conf --log=/data/test_codis/codis3/log/proxy.log --log-level=WARN &

查看进程:
# ps -ef|grep -v grep|grep "codis-proxy"

查看日志:
# tail -f /data/test_codis/codis3/log/proxy.log.2021-04-23

若需正常关闭codis-proxy ,从dashboard中移除codis proxy并关闭codis proxy实例

# cd /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/
# ./codis-admin  --dashboard=192.168.11.11:18080  --remove-proxy --addr=192.168.11.11:11080  --force

- 注:这种方式关闭后,再次启动Proxy,Proxy日志会出现proxy waiting online …告警信息,需要手工将proxy加入到dashboard中:
# cd /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/
# ./codis-admin   --dashboard=192.168.11.11:18080 --create-proxy --addr=192.168.11.11:11080

2.3.4. 启动Codis Dashboard进程

启动进程:
# cd /data/test_codis/codis3/codis3.2.1-go1.8.3-linux
# nohup /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-dashboard --ncpu=1 --config=/data/test_codis/codis3/markingconfig/dashboard.conf --log=/data/test_codis/codis3/log/codis_dashboard.log --log-level=WARN &

查看进程:
# ps -ef|grep -v grep |grep "codis-dashboard"

查看日志:
# tail -f /data/test_codis/codis3/log/codis_dashboard.log.2021-04-23
如需正常关闭codis-dashboard,则执行如下命令:
# cd /data/test_codis/codis3/codis3.2.1-go1.8.3-linux
# ./codis-admin --dashboard=192.168.11.11:18080 --shutdown

# ps -ef|grep -v grep |grep "codis-dashboard"

# tail -f /data/test_codis/codis3/log/codis_dashboard.log.2021-04-23

2.3.5. 启动Codis Fe进程

启动进程:
# cd /data/test_codis/codis3/codis3.2.1-go1.8.3-linux
# nohup /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-fe --ncpu=1 --log=/data/test_codis/codis3/log/fe.log --log-level=WARN --zookeeper=192.168.11.11:3181,192.168.11.12:3181,192.168.11.13:3181 --listen=192.168.11.11:18087 &

查看进程:
# ps -ef|grep -v grep |grep "codis-fe"

查看日志:
# tail -f /data/test_codis/codis3/log/fe.log.2021-04-23



如需关闭Codis Fe进程,则执行如下命令:
# ps -ef|grep -v grep |grep "codis-fe" | awk '{print $2}' | xargs kill -9
# ps -ef|grep -v grep |grep "codis-fe"

3. 控制台节点信息录入

启动Dashboard和Fe后,我们就可以页面操作整个Codis3集群信息了,各配置文件会自动更新。网页访问:http://192.168.11.11:18087/#MarkingShare

3.1. 配置codis分组和实例节点

3.1.1. 新建组

在"Group"界面进行设置:

我们先确定该集群的规模来确定要分几个组,理论上集群总的OPS、容量正比于Group的个数,这个属于容量规划的范畴,这里我们配置4组;
1)在"New Group"后填写1,表示第一组;然后,点击"New Group"即可创建。
2)在"New Group"后填写2,表示第二组;然后,点击"New Group"即可创建。
3)在"New Group"后填写3,表示第三组;然后,点击"New Group"即可创建。
4)在"New Group"后填写4,表示第四组;然后,点击"New Group"即可创建。

如上是在浏览器上进行添加,也可通过如下命令行工具codis-admin新建组:
# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --create-group   --gid=1
# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --create-group   --gid=2
# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --create-group   --gid=3
# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --create-group   --gid=4

3.1.2. 添加codis-server

其次,需要填写codis-server的地址,以及要添加到哪个组,可选填的是数据中心编号,因为codis3的代理支持优先同一机房路由:
1)在"Add Server"后填写"dc1"(这里dc1代指数据中心1,名称可自定义)、“192.168.11.11:6441”,在"to"后填写"1"(即将实例分配到第一组,可根据实际情况进行分配),最后点击"Add Server",即完成第一组中第一个实例的添加。
2)在"Add Server"后填写"dc1"、“192.168.11.12:6441”,在"to"后填写"1",最后点击"Add Server",即完成第一组中第二个实例的添加。

如上是在浏览器上进行添加,也可通过如下命令行工具codis-admin添加(默认第一个添加的codis server为后面配置的主实例):
# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --group-add --gid=1 --addr=192.168.11.11:6441  
# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --group-add --gid=1 --addr=192.168.11.12:6441 

3)在"Add Server"后填写"dc1"、“192.168.11.11:6442”,在"to"后填写"2",最后点击"Add Server",即完成第二组中第一个实例的添加。
4)在"Add Server"后填写"dc1"、“192.168.11.12:6442”,在"to"后填写"2",最后点击"Add Server",即完成第二组中第二个实例的添加。

如上是在浏览器上进行添加,也可通过如下命令行工具codis-admin添加
# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --group-add --gid=2 --addr=192.168.11.11:6442  
# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --group-add --gid=2 --addr=192.168.11.12:6442

5)在"Add Server"后填写"dc1"、“192.168.11.11:6443”,在"to"后填写"3",最后点击"Add Server",即完成第三组中第一个实例的添加。
6)在"Add Server"后填写"dc1"、“192.168.11.12:6443”,在"to"后填写"3",最后点击"Add Server",即完成第三组中第二个实例的添加。

如上是在浏览器上进行添加,也可通过如下命令行工具codis-admin添加:
# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --group-add --gid=3 --addr=192.168.11.11:6443  
# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --group-add --gid=3 --addr=192.168.11.12:6443

7)在"Add Server"后填写"dc1"、“192.168.11.11:6444”,在"to"后填写"4",最后点击"Add Server",即完成第四组中第一个实例的添加。
8)在"Add Server"后填写"dc1"、“192.168.11.12:6444”,在"to"后填写"4",最后点击"Add Server",即完成第四组中第二个实例的添加。

如上是在浏览器上进行添加,也可通过如下命令行工具codis-admin添加:
# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --group-add --gid=4 --addr=192.168.11.11:6444  
# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --group-add --gid=4 --addr=192.168.11.12:6444

3.1.3. 设置主从

将每组的两个实例添加好之后,我们来设置主从。若指定每组中某个实例未从库,则点击实例后面那个绿色的工具按钮,则将对应的实例设置为从。

如上是在浏览器上进行添加,也可通过如下命令行工具codis-admin添加:
# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --sync-action --create --addr=192.168.11.11:6441
# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --sync-action --create --addr=192.168.11.12:6441

# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --sync-action --create --addr=192.168.11.11:6442
# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --sync-action --create --addr=192.168.11.12:6442

# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --sync-action --create --addr=192.168.11.11:6443
# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --sync-action --create --addr=192.168.11.12:6443

# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --sync-action --create --addr=192.168.11.11:6444
# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --sync-action --create --addr=192.168.11.12:6444

完成之后,这里我们每个组都是一主一从,一切都正常明了。

3.2. 配置codis slots

在"Slots"界面进行设置:

接下来,我们来初始化slot,也就是要告诉codis,哪些slot对应哪些group:

1)快速分配:这是最快捷的方式,直接点击"Rebalance All Slots"按钮,codis将自动将1024个slot平均分配到所有的Group中。

2)自定义分配:如果您想自己指定slot的范围,也可以在上面输入框中手动输入slot的范围和对应的组;
在"Slots"指定slots的初始值和终止值,在"to Group"后选择组序号,然后点击"Migrate Range"进行分配:
这里分配如下:

	0,255,1
	256,511,2
	512,767,3,
	768,1023,4
如上是在浏览器上进行添加,也可通过如下命令行工具codis-admin添加:
# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --slot-action --create-range --beg=0   --end=255   --gid=1
# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --slot-action --create-range --beg=256 --end=511   --gid=2
# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --slot-action --create-range --beg=512 --end=767   --gid=3
# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --slot-action --create-range --beg=768 --end=1023  --gid=4

自定义分配模式,必须将1024个slot全部分配完毕,否则无法添加proxy。

3.3. 配置哨兵

在"Sentinels"界面进行设置:

1)在"Add Sentinel"填写IP地址(即IP:端口),然后点击"Add Sentinel"即完成哨兵的录入。

		192.168.11.11:26441
		192.168.11.12:26441
		192.168.11.13:26441
如上是在浏览器上进行添加,也可通过如下命令行工具codis-admin添加:
# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --sentinel-add --addr=192.168.11.11:26441
# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --sentinel-add --addr=192.168.11.12:26441
# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --sentinel-add --addr=192.168.11.13:26441

2)依次录入所有哨兵节点,再点击"SYNC"即完成自动配置。

如上是在浏览器上进行添加,也可通过如下命令行工具codis-admin进行同步:
# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --sentinel-resync

3.4. 配置集群Proxy

在"Proxy"界面进行设置:

我们内部的codis3组织已经初始化完毕,只需要往外暴露代理地址即可。
1)在"New Proxy"后填入Proxy的admin地址,然后点击"New Proxy"即完成对外代理地址的配置。
192.168.11.11:11080

如上是在浏览器上进行添加,也可通过如下命令行工具codis-admin进行同步:
# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080  --create-proxy --addr=192.168.11.11:11080

11:18080 --sentinel-add --addr=192.168.11.13:26441


2)依次录入所有哨兵节点,再点击"SYNC"即完成自动配置。

```shell
如上是在浏览器上进行添加,也可通过如下命令行工具codis-admin进行同步:
# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080 --sentinel-resync

3.4. 配置集群Proxy

在"Proxy"界面进行设置:

我们内部的codis3组织已经初始化完毕,只需要往外暴露代理地址即可。
1)在"New Proxy"后填入Proxy的admin地址,然后点击"New Proxy"即完成对外代理地址的配置。
192.168.11.11:11080

如上是在浏览器上进行添加,也可通过如下命令行工具codis-admin进行同步:
# /data/test_codis/codis3/codis3.2.1-go1.8.3-linux/codis-admin --dashboard=192.168.11.11:18080  --create-proxy --addr=192.168.11.11:11080
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zhi@Li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值