codis-server 集群安装及部署

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


Codis 由四部分组成:


Codis Proxy (codis-proxy)
Codis Manager (codis-config)
Codis Redis (codis-server)
ZooKeeper


codis-server 集群安装及部署

一,安装zookeeper

安装java环境
ZooKeeper 要求 JAVA 的环境才能运行,并且需要 JAVA6 以上的版本,可以


从官网上下载,并对 JAVA 环境变量进行设置。
yum -y install java-1.7.0-openjdk-devel

jave -version 显示版本


安装zookeeper
wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
tar zxvf zookeeper-3.4.6.tar.gz
mv zookeeper-3.4.6 /usr/local/zookeeper
mkdir -p /data/zookeeper/{data,logs}

cp zoo_sample.cfg zoo.cfg配置zoo.cfg
vim /usr/local/zookeeper/conf/zoo.cfg 
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/data/zookeeper/data
#dataLogDir=/data/zookeeper/logs
clientPort=2181
server.1=zookeeper-1:2888:3888



设置myid
在我们配置的dataDir指定的目录下面,创建一个myid文件,里面内容为一个数字,用来标识当前主机,conf/zoo.cfg文件中配置的server.X中X为什么数字,则myid文件中就输入这个数字
[[email protected] ~]# echo 1 > /data/zookeeper/data/myid



启动zookeeper
启动顺序zookeeper-1>zookeeper-2>zookeeper-3
[[email protected] zookeeper]# zkServer.sh start  
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[[email protected] zookeeper]# zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: leader
可以看到最先开始启动的是leader,其他两个是follower


设置开机启动
vim /etc/rc.local
/usr/local/zookeeper/bin/zkServer.sh start


设置环境变量
vim /etc/profile
export ZOOKEEPERPATH=/usr/local/zookeeper
export GOROOT=/usr/local/go
export CODISPATH=/usr/local/codis
export PATH=$PATH:$GOROOT/bin:$ZOOKEEPERPATH/bin:$CODISPATH/bin


source /etc/profile


二,安装codis集群

1,安装go
设置环境变量
vim /etc/profile
export GOROOT=/usr/local/go
export CODISPATH=/usr/local/codis
export PATH=$PATH:$GOROOT/bin:$CODISPATH/bin
source /etc/profile
下载安装go
cd /usr/local/
wget http://golangtc.com/static/go/go1.3.3.linux-amd64.tar.gz

如果下载不了,可以尝试手动下载tar包
tar -zxvf go1.3.3.linux-amd64.tar.gz                                     go version
go version go1.3.3 linux/amd64

2,安装依赖环境
yum groupinstall "Development Tools"


3,安装codis
yum install -y git

安装前首先要设置go_path的路径,我默认给它设置到/usr/local/go_path,然后在下载前我们需要在go_path下提前建立一个bin的目录。

go get -u -d github.com/CodisLabs/codis

克隆一个窗口,监控codis的下载进度: tcpdump -i eth0 host github.com的ip地址


切换到$GOPATH/src/github.com/CodisLabs/codis目录执行make命令编译代码,并执行make gotest来跑测试

执行全部指令后,会在 bin 文件夹内生成 codis-config、codis-proxy、codis-server三个可执行文件。另外, bin/assets 文件夹是 codis-config 的 dashboard http 服务需要的前端资源, 需要和 codis-config 放置在同一文件夹下

安装完成后 redis的配置目录在:

/usr/local/go_path/src/github.com/CodisLabs/codis/extern/下

redis的配置 信息见上一博客的redis配置


按需求配置coids中config.ini 的配置文件信息

在添加时加上-c参数 制定config.ini配置文件地址
codis-config -c ../config.ini server add 1 172.16.12.26:6380 salver

dashboard_addr=0.0.0.0:18087
zk=172.16.12.26:2181

启动dashboard

codis-config dashboard &

初始化呢solt 只能第一次安装使用

 codis-config slot init

启动codis

codis-server /etc/redis/redis_6380.conf 

codis-server /etc/redis/redis_6381.conf 



添加 Redis Server Group

每一个 Server Group 作为一个 Redis 服务器组存在, 只允许有一个 master, 可以有多个 slave, group id 仅支持大于等于1的整数

$ bin/codis-config server -h                                                                                                                                                                                                                   usage:
    codis-config server list
    codis-config server add <group_id> <redis_addr> <role>
    codis-config server remove <group_id> <redis_addr>
    codis-config server promote <group_id> <redis_addr>
    codis-config server add-group <group_id>
    codis-config server remove-group <group_id>
    
    
    添加组 一主一从
    codis-config server add 1 localhost:6380 master
    codis-config server add 1 localhost:6381 salver
    
    在浏览器中输入:  进入界面验证


本文转自岁月丶倾城博客51CTO博客,原文链接http://blog.51cto.com/alca0126/1757904如需转载请自行联系原作者


laihuadongcto