codis集群搭建

Posted astrotrain

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了codis集群搭建相关的知识,希望对你有一定的参考价值。

Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 (不支持的命令列表), 上层应用可以像使用单机的 Redis 一样使用, Codis 底层会处理请求的转发, 不停机的数据迁移等工作, 所有后边的一切事情, 对于前面的客户端来说是透明的, 可以简单的认为后边连接的是一个内存无限大的 Redis 服务

部署环境介绍

三台节点,各自起sentinel,各自起proxy,一台担任dashboard,并且交叉组成集群组建三套codis_proxy_group,并且在原有codis集群上新加项目

安装配置zookeeper

官方下载站点

http://zookeeper.apache.org/releases.html#download

  

安装

tar zxf zookeeper-3.4.9.tar.gz
mv /opt/elk/zookeeper-3.4.9 /usr/local/zookeeper

echo "
172.31.18.66 zk1
172.31.20.206 zk2
172.31.23.183 zk3" >> /etc/hosts

mkdir /data/zookeeper                #创建zk数据存放目录
echo 1 > /data/zookeeper/myid
echo 2 > /data/zookeeper/myid
echo 3 > /data/zookeeper/myid   # 创建myid文件,三台机器上不可相同        

  

配置

cd /usr/local/zookeeper/conf
cp zoo_sample.cfg zoo.cfg

vim zoo.cfg
    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/home/zk_data
    clientPort=2181
    server.1=172.31.18.66:2888:3888
    server.2=172.31.20.206:2888:3888
    server.3=172.31.23.183:2888:3888

Zookeeper默认会将控制台信息输出到启动路径下的zookeeper.out中
显然在生产环境中我们不能允许Zookeeper这样做,通过如下方法,可以让Zookeeper输出按尺寸切分的日志文件:

zookeeper.root.logger=INFO, CONSOLE改为zookeeper.root.logger=INFO, ROLLINGFILE      #修改conf/log4j.properties
ZOO_LOG4J_PROP="INFO,CONSOLE"改为ZOO_LOG4J_PROP="INFO,ROLLINGFILE"             #修改bin/zkEnv.sh文件 

  

zk启动测试  

/usr/local/zookeeper/bin/zkServer.sh start  #启动zk
/usr/local/zookeeper/bin/zkServer.sh status  #查看zk启动状态  正常三台节点,应有两台follower和一台leader

  

安装配置codis

codis安装

安装GO环境
cd /usr/lib/golang/src/github.com/CodisLabs/codis
go get github.com/wandoulabs/codis
go get -u github.com/tools/godep
下载安装codis
官网https://github.com/CodisLabs/codis,这里使用go安装
cd /usr/lib/golang/src/github.com/CodisLabs/codis
go get github.com/wandoulabs/codis
go get -u github.com/tools/godep
切换目录编译
cd $GOPATH/src/github.com/CodisLabs/codis/
make
make gotest

codis配置

cd /data/apps/codis/src/github.com/CodisLabs/codis/config
vim dashboard.toml
    coordinator_addr = "172.31.18.66:2181,172.31.20.206:2181,172.31.23.183:2181"  #zk地址
    product_name = "us-sn-bs"                                 #项目名称。此名称将会显示在dashboard的页签上
   product_auth = "57b0a738d60c1d81940ec3eff7b51d4b"                  #proxy连接dashboard的认证密码
   admin_addr = "0.0.0.0:18080" #codis-adim 地址
vim proxy.toml product_name = "us-sn-bs"                                 #项目名称。此名称将会显示在dashboard的页签上,与dashboard配置保持一样
vim ../admin/codis-fe-admin.sh 
  COORDINATOR_ADDR="172.31.18.66:2181,172.31.20.206:2181,172.31.23.183:2181" #zk地址
vim ../admin/codis-proxy-admin.sh
  CODIS_DASHBOARD_ADDR="172.31.18.66:18080" #dashboard地址和端口

  

  

 

以上是关于codis集群搭建的主要内容,如果未能解决你的问题,请参考以下文章

codis+redis 集群搭建管理

codis集群搭建

CODIS3.x集群 之 存储集群搭建全过程

Zookeeper集群搭建

Zookeeper集群搭建

Zookeeper集群搭建