欢迎您, 来到 宁时修博客.^_^

Codis 3.x集群搭建与使用_02

2018/07/04 言则行 Codis 839
Codis 3.x集群部署与配置

一、Codis3.x 编译安装

    Codis 地址:https://github.com/CodisLabs/codis

    Codis源代码需要下载到 $GOPATH/src/github.com/CodisLabs/codis

[root@codis-redis ~]# mkdir -p $GOPATH/src/github.com/CodisLabs
[root@codis-redis ~]# cd $_
[root@codis-redis CodisLabs]# yum install -y gcc autoconf automake libtool  #依赖包
[root@codis-redis CodisLabs]# wget https://github.com/CodisLabs/codis/archive/release3.2.zip  
[root@codis-redis CodisLabs]# unzip release3.2.zip
[root@codis-redis CodisLabs]# mv codis-release3.2 codis
[root@codis-redis CodisLabs]# cd codis
[root@codis-redis codis]# make
#至此codis已经安装上了
#官方使用git拉取codis源码:git clone https://github.com/CodisLabs/codis.git -b release3.2
#下载git就可以拉取了


    为codis统一目录

# codis命令路径
[root@codis-redis codis]# ln -s /usr/local/codis/src/github.com/CodisLabs/codis/bin/ /usr/local/codis/bin

# codis配置文件路径
[root@codis-redis codis]# ln -s /usr/local/codis/src/github.com/CodisLabs/codis/config/ /usr/local/codis/conf

# codis管理脚本路径
[root@codis-redis codis]# ln -s /usr/local/codis/src/github.com/CodisLabs/codis/admin/ /usr/local/codis/admin

# codis日志路径,我们也做redis日志路径
[root@codis-redis  codis]#  ln -s /usr/local/codis/src/github.com/CodisLabs/codis/log /usr/local/codis/log

#redis持久化存储路径
[root@codis-redis codis]# mkdir /usr/local/codis/data


    codis集群每台服务器都需要安装codis。

   

二、配置redis.conf

#bind 127.0.0.1   #注释掉,或者写成 bind 0.0.0.0
daemonize yes    #将redis以后台进程的方式运行
protected-mode no  #设置yes是为了禁止外网访问redis,我们为了测试选择no,不然通信受阻
logfile "/usr/local/codis/log/redis_6379.log"  #制定日志路径
dir "/usr/local/codis/data"  #指定RDB/AOF文件的路径

    redis具体配置请看别的文档。使用codis-server就可以启动redis了。

/usr/local/codis/bin/codis-server /usr/local/codis/conf/redis.conf
# 当然还可以使用codis-server-admin.sh脚本快速启动,见下面的启动顺序



三、启动顺序

 (1)Codis Dashboard

    配置dashboard.toml

    codis集群中的某个节点做主,其余做备

    主要配置信息:

[root@codis-redis ~]# vim /usr/local/codis/conf/dashboard.toml
coordinator_name = "zookeeper"
coordinator_addr = "192.168.2.24:2181,192.168.2.25:2181,192.168.2.26:2181"
product_name = "codis-demo"

    这个文件里的一些参数释义:

参数说明
coordinator_name外部存储类型,接受 zookeeper/etcd
coordinator_addr外部存储地址,以逗号隔开
product_name集群名称,满足正则 \w[\w\.\-]*
product_auth集群密码,默认为空
admin_addrRESTful API 端口



    快速启动

    使用 codis-dashboard-admin.sh 脚本启动 dashboard,并查看 dashboard 日志确认启动是否有异常。

/usr/local/codis/admin/codis-dashboard-admin.sh start
tail /usr/local/codis/log/codis-dashboard.log.2018-07-04



 (2)Codis Proxy

    配置proxy.toml

[root@codis-redis ~]# vim /usr/local/codis/conf/proxy.toml
product_name = "codis-demo"
jodis_name = "zookeeper"
jodis_addr = "192.168.2.24:2181,192.168.2.25:2181,192.168.2.26:2181"
jodis_compatible = true

    参数释义

参数说明
product_name集群名称,参考 dashboard 参数说明
product_auth集群密码,默认为空
admin_addrRESTful API 端口
proto_typeRedis 端口类型,接受 tcp/tcp4/tcp6/unix/unixpacket
proxy_addrRedis 端口地址或者路径
jodis_addrJodis 注册 zookeeper 地址
jodis_timeoutJodis 注册 session timeout 时间,单位 second
jodis_compatibleJodis 注册 zookeeper 的路径
backend_ping_period与 codis-server 探活周期,单位 second,0 表示禁止
session_max_timeout与 client 连接最大读超时,单位 second,0 表示禁止
session_max_bufsize与 client 连接读写缓冲区大小,单位 byte
session_max_pipeline与 client 连接最大的 pipeline 大小
session_keepalive_period与 client 的 tcp keepalive 周期,仅 tcp 有效,0 表示禁止

    注:Codis3 会将 jodis 节点注册在 /jodis/{PRODUCT_NAME} 下,这点与 Codis2 不太兼容,所以为了兼容性,可以考虑将 jodis_compatible 设置成 true


    快速启动

    使用 codis-proxy-admin.sh 脚本启动 codis-proxy,并查看 proxy 日志确认启动是否有异常。

/usr/local/codis/admin/codis-proxy-admin.sh start
tail /usr/local/codis/log/codis-proxy.log.2018-07-04


  (3)Codis Server

    如果需要配置redis.conf,请配置好。

/usr/local/codis/bin/codis-server /usr/local/codis/conf/redis.conf

    可以如同启动redis一样启动,一定要用codis-server命令,不要用原生的redis-server命令。


    快速启动

    建议使用 codis-server-admin.sh 脚本启动 codis-server,并查看 redis 日志确认启动是否有异常。

/usr/local/codis/admin/codis-server-admin.sh start
tail /usr/local/codis/log/redis_6379.log



  (4)Codis FE

    配置codis-fe-admin.sh,修改FE读取数据源

[root@codis-redis ~]# vim /usr/local/codis/admin/codis-fe-admin.sh
COORDINATOR_NAME="zookeeper"
COORDINATOR_ADDR="192.168.2.24:2181,192.168.2.25:2181,192.168.2.26:2181"

    

    快速启动

    使用 codis-fe-admin.sh 脚本启动 codis-fe,并查看 fe 日志确认启动是否有异常。

/usr/local/codis/admin/codis-fe-admin.sh start
tail /usr/local/codis/log/codis-fe.log.2018-07-04


 (5)多台Proxy

    1、除了dashboard只能启动一台以外,proxy、fe、server都可以启动多台。

    2、如果启动多台proxy,并且是上面的启动方式,那么每台proxy都需需要修改codis-proxy-admin.sh

[root@codis-redis ~]# vim /usr/local/codis/admin/codis-proxy-admin.sh
CODIS_DASHBOARD_ADDR="192.168.2.24:18080"

    每台proxy都要指向同一个dashboard,才可以加进codis集群。

    配置完后重启proxy,进入fe管理页面,就可以看到proxy已经添加进去了。


四、通过FE添加Group

    通过web浏览器访问集群管理页面(fe地址: host_ip:9090), 选择我们刚搭建的集群 codis-demo,在 Proxy 栏可看到我们已经启动的 Proxy, 但是 Group 栏为空,因为我们启动的 codis-server 并未加入到集群 添加 NEW GROUP,NEW GROUP 行输入ID(数字1~9999),再点击 NEW GROUP 即可添加,Add Server 行输入我们刚刚启动的 codis-server 地址,添加到我们刚新建的 Group,然后再点击 Add Server 按钮即可,如下图所示:

4173332.png


    redis-master一定要第一个添加,后面添加redis-slave。



五、通过FE初始化slot

    新增的集群 slot 状态是 offline,因此我们需要对它进行初始化(将 1024 个 slot 分配到各个 group),而初始化最快的方法可通过 fe 提供的 rebalance all slots 按钮来做,如下图所示,点击此按钮,我们即快速完成了一个集群的搭建。

20180704173628.png



六、使用codis

    我们这用的是一主两从的redis,proxy有三台,使用时可以只连proxy:

192.168.2.24:19000,192.168.2.25:19000,192.168.2.26:19000;增删改查等。

[root@codis-redis ~]# /usr/local/codis/bin/redis-cli -h 192.168.2.24 -p 19000
192.168.2.24:19000> set myage 24
OK
192.168.2.24:19000> get myage
"24"
192.168.2.24:19000> exit



    如果redis-master因某种原因挂了,可以在fe管理页面上把一台slave提升为master,如图:

20180704174624.png


    当然,codis有自动检测和自动切换主从,我们后面再讲。






点赞
说说你的看法

所有评论: (1)

# 加入组织

1、用手机QQ扫左侧二维码

2、搜Q群:1058582137

3、点击 宁时修博客交流群