Codis集群搭建摘要

准备方案

Golang环境搭建

环境搭建很简单,下载go1.4.2.linux-amd64.tar.gz安装包,直接解压并添加到环境变量就可以。 假设解压到/usr/local/go下,这个目录就是GOROOT,另外需要定义一个go开发目录,假设为/workspace/golang。 go开发目录未来会产生一些主要的子目录:
1. src 存放源码
2. pkg 编译后生成的文件
3. bin 编译后生产的可执行文件(比如godep命令在安装后就会放在这个目录下)

环境变量添加:

生效后就可以执行go version查看go的版本信息。 将$GOPATH/bin加入PATH是为了让一些开源的或者自己安装的go扩展命令(如godep)可以全局使用。

Codis下载和编译

最新版的Codis位于[https://github.com/CodisLabs/codis] 通过下面命令获得源码

进入源码路径,执行make开始编译。

Codis的编译使用了godep,如果没有安装的话就会报godep command not found的错误。 godep是golang的一个包管理工具,通过
go get github.com/tools/godep

安装,成功后执行godep就会有对应的命令信息,如果没有可以在$GOPATH/bin目录下查找这个命令,然后加入环境变量。

如果你是用golang 1.5 beta3以上的版本进行编译,还有可能出现的一个问题是

这是因为golang 1.5 beta3之后go添加了GO15VENDOREXPERIMENT这个特性,并在1.6默认开启,你可以参照Codis issue715 里面的方案解决。 最简单就是在编译前

编译后的文件

编译后会产生一个bin目录,下面有三个可执行文件和一个目录

这就是我们最终集群部署的时候需要用到的文件,当然跨平台的话主要要交叉编译或者在特定平台下编译,不然可能无法运行。

集群方案

这里使用三台机器做一个小的集群。每台机器部署一个zookeeper实例,两个codis server实例(也就是redis server)。 其中两台机器部署codis proxy,另外一台开启codis dashboard。


host ip zookeeper port redis server master/slave port codis proxy codis dashboard
slave1 192.168.4.124 2181 6379/6380 Y
slave2 192.168.4.126 2181 6379/6380 Y
slave3 192.168.4.128 2181 6379/6380 Y

集群搭建

zookeeper集群

zookeeper的搭建这里就不详细介绍了,最终节点是

先把zookeeper起起来

codis服务集群

创建codis服务目录

对每台机器执行以上操作

根据注释修改config.ini文件

启动dashboard

在slave2上执行 bin/codis-config dashboard, 该命令会启动 dashboard

初始化slots

在任一机器上执行 bin/codis-config slot init,该命令会在zookeeper上创建slot相关信息

启动Codis Redis

和官方redis的参数一下,三台机器上分别执行

添加Redis Server Group

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

如: 添加三个 server group, 每个 group 有两个 redis 实例,group的id分别为1、2和3, redis实例为一主一从。

添加一个group,group的id为1, 并添加一个redis master到该group

添加一个redis slave到该group

类似的,再添加group,group的id为2

类似的,再添加group,group的id为3

设置 server group 服务的 slot 范围

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

如:

设置编号为[0, 334]的 slot 由 server group 1 提供服务, 编号 [335, 669] 的 slot 由 server group 2 提供服务, 编号 [670, 1023] 的 slot 由 server group 3 提供服务,

启动 codis-proxy

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

浏览器管理

访问http://192.168.4.126:18087/admin ,现在可以在浏览器里面完成各种操作了。

1 1 收藏 评论

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部