codis集群搭建

大体流程:zookeeper安装部署(每台机器都需要)->codis环境部署(go语言)->安装codis->codis集群配置->连接测试

一、zookeeper安装部署:(https://www.ilanni.com/?p=11393

1.安装java环境

yum search jdk

yum -y install java-1.6.0-openjdk

java -version  检测java是否安装完毕

2.安装zookeeper:

wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gz 

tar -C /usr/local/ -xf zookeeper-3.4.8.tar.gz 

cd /usr/local/ 

mv zookeeper-3.4.8 zookeeper 

chown root:root -R zookeeper/ 

cd zookeeper

cp conf/zoo_sample.cfg conf/zoo.cfg

//将zookeeper加入环境变量

vim /etc/profile

export PATH=$PATH:/usr/local/zookeeper/bin

//执行source使环境变量生效

source /etc/profile

env 看看是否生效

修改zookeeper配置文件:

vim /usr/local/zookeeper/conf/zoo.cfg


clientPort=2181

dataLogDir=/usr/local/zookeeper/logs 日志目录

dataDir=/usr/local/zookeeper/data数据目录

server.1= 192.168.1.9:2888:3888       有几台机器配几个server.A=B:C:D  A为数字,标识第几个服务器,B为ip,C为集群成员信息交换端口,D为zookeeper leader选

server.2= 192.168.1.124:2888:3888    举端口

server.3= 192.168.1.231:2888:3888

//创建相关目录

mkdir -p /usr/local/zookeeper/logs

mkdir -p /usr/local/zookeeper/data

//创建serverID标识

echo “A” > /usr/local/zookeeper/data/myid    每台机器都需要配置,A需要与配置文件中的server.A对应


//启动zookeeper

cd /usr/local/zookeeper

bin/zkServer.sh start 每台机器都需要启动

bin/zkServer.sh status 查看状态 leaderfollower状态,代表搭建成功

二、codis安装

1.go语言环境安装

//安装基础依赖

yum install -y git gcc make g++ gcc-c++ automake openssl-devel zlib-*

//安装go

wget http://www.golangtc.com/static/go/1.4.2/go1.4.2.linux-amd64.tar.gz

tar -C /usr/local -xf go1.4.2.linux-amd64.tar.gz

//加入到系统环境变量

vim /etc/profile

     export PATH=$PATH:/usr/local/go/bin

     export GOPATH=/usr/local/

     //环境变量生效

source /etc/profile

env 查看是否生效

go version  查看go是否安装成功

2.codis安装(一台机器安装就可以,因为把pika当做codis-server)

//git clone codis3.2源码

git clone https://github.com/CodisLabs/codis.git

mkdir -p /usr/local/src/github.com/CodisLabs/

cp -r codis /usr/local/src/github.com/CodisLabs/

cd /usr/local/src/github.com/CodisLabs/codis/

//编译

make    执行成功后,bin目录下生成codis-admin,codis-dashboard,codis-fe,codis-ha,codis-proxy,codis-server六个可执行文件

三、配置并启动codis(http://blog.51cto.com/xiumin/1954795

1.修改配置文件

修改pika配置文件并启动(每台机器都启动):slotmigrate : yes

修改codis的Dashboard配置文件

vim /usr/local/src/github.com/CodisLabs/codis/config/dashboard.toml

coordinator_name = "zookeeper"

coordinator_addr = "192.168.3.198:2181,192.168.3.198:2182,192.168.3.198:2183" //外部存储地址,设为zookeeper机器的ip及通信端口

migration_method = "sync"

admin_addr = "192.168.4.70:18080"  //RESTful API端口,管理地址,可以设置为某个机器的ip端口,用不到

2.启动Dashboard

nohup ./bin/codis-dashboard --ncpu=4 --config=config/dashboard.toml --log=dashboard.log --log-level=WARN &   参数适当修改log  日志路径  ncpu最大使用cpu个数  config 指定启动配置文件 

3.修改proxy配置文件:

product_name产品名称,这个codis集群的名字。自定义

product_auth:集群密码,默认为空。

admin_addrRESTful API地址端口。使用Dashboard的admin_addr

proto_typeRedis端口类型,接受tcp/tcp4/tcp6/unix/unixpacket。默认即可

proxy_addrRedis端口地址或者路径。代理地址,设置为codis机器地址

jodis_addrJodis注册zookeeper地址。需要修改,zookeeper配置文件中的机器地址和端口

jodis_timeoutJodis注册session timeout时间,单位second

backend_ping_period:与codis-server探活周期,单位second0表示禁止。

session_max_timeout:与client连接最大读超时,单位second0表示禁止。

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

session_max_pipeline:与client连接最大的pipeline大小。

session_keepalive_period:与clienttcp keepalive周期,仅tcp有效,0表示禁止。

backend_primary_parallel服务器后端连接数设置为10(可变)

4.启动proxy:nohupcodis-proxy--ncpu=4--config=/data/codis/conf/proxy.toml--log=/data/codis/log/proxy.log--log-level=WARN&

5.配置codis-fe

 nohup ./bin/codis-fe --ncpu=1 --log=fe.log --log-level=WARN --zookeeper=192.168.10.45:2181 --listen =192.168.10.45:8090 &

zookeeper  listen都设置为codis机器的地址,端口使用zookeeper设置的端口,listen的端口设置为8090即可

6.浏览器访问上一步listen地址进入前端界面

7.通过web浏览器访问集群管理页面(fe地址:192.168.10.45:8090)选择我们刚搭建的集群 codis-***,在 Proxy栏添加我们已经启动的 Proxy

8.但是 Group栏为空,因为我们启动的 codis-server 并未加入到集群 添加 NEW GROUPNEW GROUP行输入 1,再点击 NEW GROUP即可 

9.添加实例(即添加后端的pika服务器)

10.slots进行分组

11.连接proxy读写测试

  12. 单代理的codis安装完成


由于我布置的不是redis,而是pika,所以把pika直接作为codis-server使用就可以了,

为了支持多连接,需要更改一些配置文件,

改变了codis的proxy的backend_primary_parallel(服务器后端连接数)参数

python脚本向codis中mset数据时,出现redis.exceptions.ResponseError异常,最终解决方法是修改dashboard的配置文件migration_method ="sync"

与pika性能比较:

进程数增多,pika性能降低。

相同进程数情况下,codis集群机器数量增多,性能提升。

相关文章:

  • 2021-08-28
  • 2022-12-23
  • 2022-01-07
  • 2022-12-23
  • 2021-07-15
  • 2021-06-08
猜你喜欢
  • 2022-01-06
  • 2021-12-28
  • 2022-12-23
  • 2021-08-13
  • 2022-12-23
相关资源
相似解决方案