Codis集群安装部署

一、环境:

Codis集群安装部署_第1张图片

                                                          

  • 3台部署codis-proxy和codis-ha,每台至少2G内存,硬盘容量可按线上标配配置
  • 3台部署zookeeper、其中1台codis-dashbord、1台codis-fe,每台至少2G内存
  • 6台部署主从codis-server,每台至少4G内存
  • Centos 7.x 64bit
  • JDK 1.8 + 64bit
  • Codis3.2.2
  • Zookeeper-3.4.10
  • Go 运行环境go1.10.linux-amd64.tar.gz

 

二、准备

关闭防火墙

systemctl stop firewalld.service

systemctl disable firewalld.service

firewall-cmd --state #确保结果为not running

下载相关安装包

Go 运行环境https://golang.org/doc/install?download=go1.10.7.linux-amd64.tar.gz

Zookeeperhttp://apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz

Codis:https://github.com/CodisLabs/codis/releases/download/3.2.2/codis3.2.2-go1.8.5-linux.tar.gz 

 

三、安装Go 运行环境

 

解压程序包

tar xf go1.9.1.linux-amd64.tar.gz

#移动到指定目录

mv go /usr/local/

#把程序包里的命令软连接到系统默认命令目录

ln -sf /usr/local/go/bin/* /usr/bin/

#测试检查是否安装完成

go version

配置GO环境变量

vi /etc/profile

添加如下信息

#GO

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

#GO Codis

export GOPATH=/usr/local/codis

export PATH=$PATH:$GOPATH/bin

 

四、安装ZK (三台主机上执行)

请按照常规方式安装ZK,安装过程不再赘述

  • 安装Codis
  1. 创建codis相关目录

#codis根目录

mkdir /usr/local/codis

#codis bin目录

mkdir /usr/local/codis/bin

#codis配置文件目录(路径可自定,本例放在根目录下)

mkdir /usr/local/codis/conf

#codis日志文件输出(路径可自定)

mkdir /usr/local/codis/log

  1. 解压程序包

tar xf codis3.2.1-go1.7.6-linux.tar.gz

#将解压出的内容移动到codis bin目录

mv codis3.2.2-go1.8.5-linux/* /usr/local/codis/bin

  1. 配置codis-server(主从配置都相同)

#创建codis-server配置文件,暂时只配置这些,其他默认

vi /usr/local/codis/conf /redis.conf

#允许后台运行

daemonize yes

#设置端口

port 6379

#绑定登录IP,安全考虑,最好是内网

bind 192.168.103.86 127.0.0.1

#命名并指定当前redis的PID路径

pidfile "/data/redis/tmp/redis.pid"

#命名并指定当前redis日志文件路径

logfile "/usr/local/codis/log/redis.log"

#指定RDB文件名,用以备份数据到硬盘并区分不同redis,当使用内存超过可用内存的45%时触发快照功能

dbfilename "dump.rdb"

#指定当前redis的根目录,用来存放RDB/AOF文件

dir "/data/redis/data"

  1. 配置codis-proxy

#执行codis-proxy命令生成proxy默认配置

/usr/local/codis/bin/codis-proxy --default-config | tee /usr/local/codis/conf/proxy.conf

编辑proxy.conf, 暂时只配置这些,其他默认

#项目名称,会登记在zookeeper里,如果你想一套zookeeper管理多套codis,就必须区分好

product_name = "gamelife-codis"

#管理的端口,0.0.0.0即对所有ip开放,基于安全考虑,可以限制内网

admin_addr = "0.0.0.0:11080"

#外部配置存储类型,我们用的就是zookeeper,当然也是还有其他可以支持,这里不展开说

jodis_name = "zookeeper"

#配置zookeeper的连接地址,这里是三台就填三台

jodis_addr = "10.0.2.5:2181,10.0.2.6:2181,10.0.2.7:2181"

#codis代理的最大连接数,默认是1000,并发大要调大

proxy_max_clients = 100000

#假如并发太大,你可能需要调这个pipeline参数,大多数情况默认10000就够了

session_max_pipeline = 100000

#并发大也可以改以下参数

backend_max_pipeline = 204800

session_recv_bufsize = "256kb"

session_recv_timeout = "0s"

  1. 配置codis-dashboard

#执行codis-dashboard命令生成dashboard配置

/usr/local/codis/bin/codis-dashboard --default-config | tee /usr/local/codis/conf/dashboard.conf

编辑dashboard.conf, 暂时只配置这些,其他默认

#外部配置存储类型,我们用的就是zookeeper,

coordinator_name = "zookeeper"

#配置zookeeper的连接地址,这里是三台就填三台

coordinator_addr = "10.0.2.5:2181,10.0.2.6:2181,10.0.2.7:2181"

#项目名称,会登记在zookeeper里,如果你想一套zookeeper管理多套codis,就必须区分好

product_name = " gamelife-codis"

  • 运行Codis
  1. 启动codis-server6台)

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

查看/usr/local/codis/log/redis.log,确保启动正常

关闭redis

redis-cli -h 127.0.0.1 -p 6379

shutdown

  1. 启动codis-proxy(3台)

# --ncpu指定使用多少个cpu,一般配置成当前虚拟机或物理机的cpu数
nohup codis-proxy --ncpu=2 --config=/usr/local/codis/conf/proxy.toml --log=/usr/local/codis/log/ proxy.log &

查看/usr/local/codis/log/proxy.log,确保启动正常

  1. 启动codis-dashboard(1台)

# --ncpu指定使用多少个cpu,一般配置成当前虚拟机或物理机的cpu数
nohup codis-dashboard --ncpu=2 --config=/usr/local/codis/conf/dashboard.toml --log=/usr/local/codis/log/dashboard.log &

查看/usr/local/codis/log/proxy.log,确保启动正常

  1. 启动codis-fe(1台)

# --zookeeper 配置zk连接地址,这里是三台就填三台--liste指定codis-fe的web登录端口,也就是我们通过8090来访问这个管理端了,0.0.0.0即对来访IP无限制,其实最好是限制内网
nohup codis-fe --ncpu=2 --zookeeper=192.168.142.186:2181,192.168.142.186:2182,192.168.142.186:2183 --assets-dir=/usr/local/codis/bin/assets  --log=/usr/local/codis/log/codis-fe.log --pidfile=/usr/local/codis/bin/codis-fe.pid --log-level=INFO --listen=0.0.0.0:8090 &

查看/usr/local/codis/log/codis-fe.log,确保启动正常

  • 管理页面配置codis集群

 

通过web浏览器访问集群管理页面(fe地址:127.0.0.1:8090) 选择我们刚搭建的集群gamelife-codis

  1. 添加codis-proxy集群

Codis集群安装部署_第2张图片
第一步,先添加codis-proxy的地址和管理端口,上面设置的是11080

第二步,点击左方的橙色按钮,然后就添加完毕.

第三步,看到下方出现该有的codis-proxy地址就算完成了,然后看到右方的SYNC字样的颜色是绿色,则代表配置正常.

如果要删除记录,点击最右方的红色按钮即可.

  1. 添加codis-server集群

Codis集群安装部署_第3张图片
按顺序:

第一步,先创建一个组,准备把相关的一组主从放进去

第二步,点击按钮生成这个分组

第三步,添加真实coids-server地址,并选定一个分组,例如刚才创建的分组1

第四步,点击按钮生成配置

第五步,可以看到配置已经登记好,注意sync状态.

第六步,重复1到5步,将3组codis主从(共6台)全部添加完成后,点击重新平衡所有slots数据块(任何添加和删除新旧节点都需要点击这个)

  1. 启动codis-ha(3台)

# --dashboard 配置codis-dashboard的IP地址
./codis-ha --dashboard=127.0.0.1:18080 --log=/usr/local/codis/log/codis-HA.log --log-level=INFO &

  • 常用命令汇总
  1. codis-server

启动
codis-server /usr/local/codis/conf/redis.conf &

关闭
redis-cli -h 127.0.0.1 -p 6379

shutdown

  1. codis-proxy

启动
nohup codis-proxy --ncpu=2 --config=/usr/local/codis/conf/proxy.toml --log=/usr/local/codis/log/ proxy.log &

关闭
codis-admin --proxy=127.0.0.1:11080 --shutdown

查看/usr/local/codis/log/proxy.log,确保启动正常

  1. codis-dashboard

启动
nohup codis-dashboard --ncpu=2 --config=/usr/local/codis/conf/dashboard.toml --log=/usr/local/codis/log/dashboard.log &

关闭
codis-admin --dashboard=127.0.0.1:18080 --shutdown

  1. codis-fe

启动
nohup codis-fe --ncpu=2 --zookeeper=192.168.142.186:2181,192.168.142.186:2182,192.168.142.186:2183 --assets-dir=/usr/local/codis/bin/assets  --log=/usr/local/codis/log/codis-fe.log --pidfile=/usr/local/codis/bin/codis-fe.pid --log-level=INFO --listen=0.0.0.0:8090 &

关闭
 ps -ef | grep codis-fe
 kill -9 pid

  1. codis-ha

启动
./codis-ha --dashboard=127.0.0.1:18080 --log=/usr/local/codis/log/codis-HA.log --log-level=INFO &

关闭
 ps -ef | grep codis-ha
 kill -9 pid

  1. 异常退出后,启动报zk exist错误,执行命令删除zk codis目录

#--zookeeper 配置zk连接地址,这里是三台就填三台
codis-admin --remove-lock --product=gamelife-codis --zookeeper=192.168.142.186:2181,192.168.142.186:2182,192.168.142.186:2183

 

你可能感兴趣的:(架构部署)