您的位置:首页 > 运维架构 > Linux

codis linux 架设

2016-01-05 10:33 639 查看
纲要
      环境版本
      目录结构
      安装步骤
      启动

一、环境版本

操作系统:CentOS 6.5  x86-64
java 7                   
go 语言版本 1.5.2
zookeeper 3.4.6  
codis 2.0.11     

文件下载地址:http://pan.baidu.com/s/1sjVNWEp

二、目录结构
      /data
      -----/zookeeper
      -----/go
      ---------/src/github/wandoulabs/codis
      -----/codis(软连接,指向 go/src/github/wandoulabs/codis)
      -----/redis (redis conf 存放目录)
   
三、安装步骤

java 安装
查看是否有其他版本的JDK,CentOS 6.5 默认会安装 OpenJDK
rpm -qa|grep jdk

rpm -e --nodeps <包名>
来删除原有JDK

安装Oralce JDK
rpm -ivh jdk-7u71-linux-x64.rpm

检验是否安装成功
java -version

zookeeper 安装
解压 zookeeper-3.4.6.tar 到 /data/zookeeper  目录下

将 /data/zookeeper/conf/zoo_simple.cfg  更名为 zoo.cfg(正式环境需要修改
dataDir 参数)

启动 zookeeper
sh /data/zookeeper/bin/zkServer.sh start

go 安装
解压 go1.5.2.linux-amd64.tar 到 /data 目录
修改环境变量
vi /etc/profile

在最后加入:

export GOROOT=/data/go
export PATH=$GOROOT/bin:$PATH

刷新环境变量
source /etc/profile

检验是否安装成功
go version

codis安装
解压 codis-2.0.11.tar.gz 到  /data/src/github.com/wandoulabs/codis 目录
执行命令:
cd /data/src/github.com/wandoulabs/codis
make
make gotest

给codis目录创建软连接,方便执行命令
ln -s /data/src/gibhub.com/wandoulabs/codis /data/codis

编译成功后,/data/codis/bin 目录会出现 codis-proxy, codis-server, codis-config

codis 概要介绍:
codis-config,启动dashboard控制,初始化slot,配置server group
codis-proxy ,代理redis-client
codis-server,和原生redis server 一样,此版本 codis 维护的是 redis2.8.1源代码

官方操作介绍:

https://github.com/wandoulabs/codis/blob/master/doc/tutorial_zh.md

四、启动

启动顺序
zookeeper(见:安装步骤2,zookeeper安装)

修改codis config.ini(设置 zookepper 地址)
codis-config dashboard 控制台(所有的codis命令都经过dashboard)
codis-config slot 初始化
codis-config group 设置
codis server
codis-proxy (多个proxy)

修改codis  config.ini
修改 zk 属性,ip 为zookeeper安装机器ip,port 默认 2181
修改dashboard_addr,为当前机器地址,需要指定具体 ip
(注意,ip 都使用明确的ip地址,不要使用 0.0.0.0)

启动codis dashboard
cd /data/codis
bin/codis-config dashboard

检查是否启动成功: 可以打开 codis 控制台
http://ip:18087
(注意:检查linux 防火墙)

codis slot 初始化
cd /data/codis
bin/codis-config slot init

打开控制台 http://ip:18087/slots 可以查看 slot 状态,目前都是 offline,需要设置server group来online slot

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

这里添加两组
bin/codis-config server
add 1 localhost:6379 master
bin/codis-config server add 1 localhost:6380
slave

bin/codis-config server add 2 localhost:6479
master
bin/codis-config server add 2 localhost:6480
slave

localhost:6379,6380.. 对应的就是redis server 的部署地址。

设置 server group 服务的 slot 范围

Codis 采用 Pre-sharding 的技术来实现数据的分片, 默认分成 1024 个 slots (0-1023), 对于每个key来说, 通过以下公式确定所属的 Slot Id : SlotId = crc32(key) % 1024 每一个 slot 都会有一个且必须有一个特定的 server group id 来表示这个 slot 的数据由哪个 server group 来提供.(官方文档)

server 1: 0 ~ 511

server 2: 512 ~ 1023
bin/codis-config slot range-set 0 511 1 online

bin/codis-config slot range-set 512 1023 2 online

codis server 启动
之前所过了,codis 维护这redis 2.8.1的代码, codis-server 启动和redis-server 启动方式一样

复制 /data/go/src/github.com/wandoulabs/codis/extern/redis-2.8.21/redis.conf,到/data/redis/redis.conf

在 /data/redis 下根据redis.conf 创建 6379.conf, 6380.conf, 6479.conf, 6480.conf
分别修改 文件下的 port 端口

启动codis-server

bin/codis-server /data/redis/6379.conf
bin/codis-server /data/redis/6380.conf

bin/codis-server /data/redis/6479.conf

bin/codis-server /data/redis/6480.conf

打开控制台看起来是这样:


codis proxy 启动
如果说 codis dashboard 是浏览器,那么codis proxy 就是浏览器上面的标签页(比喻可能不恰当)

bin/codis-proxy -c config.ini -L ./log/proxy.log  --cpu=8 --addr=ip:19000 --http-addr=ip:19001

(注意,ip 都使用明确的ip地址,不要使用 0.0.0.0)

刚启动的 codis-proxy 默认是处于 offline状态的, 然后设置
proxy 为 online 状态, 只有处于 online 状态的 proxy 才会对外提供服务

bin/codis-config -c config.ini proxy online <proxy_name>  <---- proxy的id, 如 proxy_1

打开控制台看起来是这样:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  codis zookeeper linux java