关闭

codis测试

185人阅读 评论(0) 收藏 举报


Codis 3.x 由以下组件组成:
Codis Server
:基于 redis-2.8.21分支开发。增加了额外的数据结构,以支持 slot有关的操作以及数据迁移指令。具体的修改可以参考文档 redis的修改。
Codis Proxy
:客户端连接的 Redis代理服务, 实现了Redis 协议。除部分命令不支持以外(不支持的命令列表),表现的和原生的 Redis 没有区别(就像Twemproxy)。
对于同一个业务集群而言,可以同时部署多个 codis-proxy实例;
不同 codis-proxy之间由 codis-dashboard保证状态同步。
Codis Dashboard
:集群管理工具,支持 codis-proxycodis-server的添加、删除,以及据迁移等操作。在集群状态发生改变时,codis-dashboard维护集群下所有codis-proxy的状态的一致性。
对于同一个业务集群而言,同一个时刻 codis-dashboard只能有 0个或者1个;
所有对集群的修改都必须通过 codis-dashboard完成。
Codis Admin
:集群管理的命令行工具。
可用于控制 codis-proxycodis-dashboard状态以及访问外部存储。
Codis FE
:集群管理界面。
多个集群实例共享可以共享同一个前端展示页面;

通过配置文件管理后端codis-dashboard列表,配置文件可自动更新。
Codis HA
:为集群提供高可用。
依赖codis-dashboard实例,自动抓取集群各个组件的状态;
会根据当前集群状态自动生成主从切换策略,并在需要时通过codis-dashboard完成主从切换。
Storage
:为集群状态提供外部存储。
提供Namespace概念,不同集群的会按照不同product name进行组织;
目前仅提供了ZookeeperEtcd 两种实现,但是提供了抽象的interface可自行扩展。

参考:
http://my.oschina.net/vampire/blog/639329?fromerr=bfcih7ZM#OSC_h4_11
http://www.idcfree.com/article-1815-1.html
http://my.oschina.net/yangpeng/blog/606865?fromerr=IxPgUo02

codis集群
修改yum
wget -O /etc/yum.repos.d/epel.repo 
http://mirrors.aliyun.com/repo/epel-6.repo
1.
安装服务依赖
yum install -y gcc make g++ gcc-c++ automake lrzsz openssl-devel zlib-* bzip2-*readline* zlib-* bzip2-*
手动安装 go 
https://storage.googleapis.com/golang/go1.5.1.linux-amd64.tar.gz
tar xf go1.5.1.linux-amd64.tar.gz -C /usr/local
安装java
http://download.oracle.com/otn-pub/java/jdk/8u77-b03/jdk-8u77-linux-x64.tar.gz
tar xf jdk-8u77-linux-x64.tar.gz -C /usr/local
ln -s /usr/local/jdk1.8.0_77/ /usr/local/java
安装zookeeper
wget 
http://apache.fayea.com/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
tar xf zookeeper-3.4.6.tar.gz -C /usr/local
ln -s /usr/local/zookeeper-3.4.6/ /usr/local/zookeeper
2.
修改环境变量
JAVA_HOME=/usr/local/java
JRE_HOME=$JAVA_HOME/jre
ZOOKEEPER_HOME=/usr/local/zookeeper
JAVA_FONTS=/usr/local/java/jre/lib/fonts
CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$ZOOKEEPER_HOME/bin
export JAVA_HOME PATH CLASSPATH JRE_HOME ZOOKEEPER_HOME
######
export GOROOT=/usr/local
export GOPATH=/data/service/golang
PATH=".:$PATH:$GOROOT/bin:$GOPATH/bin:$ZOOKEEPER/bin"
然后生效环境变量
. /etc/profile

创建目录:
mkdir -p /data/service/golang
安装git
yum install -y git
安装codis
go get -u -d 
github.com/CodisLabs/codis

####如果上述无法安装可下载解压到相应目录

###wget https://github.com/CodisLabs/codis/archive/3.0.3.tar.gz
安装codis编译工具godep
离线安装 godep 方法:

运行 gitclone https://github.com/tools/godep.git 下载 godep 源码;
godep 目录移动到$GOPATH/src/github.com/tools/godep,并进入该目录;
运行命令 goinstall ./,该命令会将godep生成到$GOPATH/bin下。
git clone 
https://github.com/tools/godep.git
mv godep $GOPATH/src/
github.com/tools/godep
cd $GOPATH/src/
github.com/tools/godep

然后进入到codis的安装目录                                                           
执行make

codis的安装目录下操作:
mkdir -p /usr/local/codis/{logs,conf,scripts} 

mkdir -p /data/codis_server/{logs,conf,data}
拷贝配置文件:
cp -rf bin /usr/local/codis/
cp config.ini /usr/local/codis/conf/
cp extern/redis-test/conf/6379.conf /data/codis_server/conf/
cp extern/redis-test/conf/6380.conf /data/codis_server/conf/
根据注释修改config.ini文件(/usr/local/codis/conf/
请参考:http://my.oschina.net/vampire/blog/639329?fromerr=bfcih7ZM#OSC_h4_11


zookeeper
搭建请参考:
http://www.idcfree.com/article-1815-1.html

请务必在启动dashboard前启动zookeeper服务。

进入/usr/local/codis/
启动dashboard
[root@VM-YZ-192.168.1.100 codis]#bin/codis-config -c conf/config.ini dashboard&
初始化slots
[root@VM-YZ-192.168.1.100 codis]#bin/codis-config -c conf/config.ini slot init

启动CodisRedis
/usr/local/codis/bin/codis-server /data/codis_server/conf/6379.conf &
/usr/local/codis/bin/codis-server /data/codis_server/conf/6380.conf &

查看帮助文件:
bin/codis-config -c conf/config.ini 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>
[root@VM-YZ-192.168.1.100 codis]#
添加一个groupgroupid1并添加一个redis master到该group

[root@VM-YZ-192.168.1.100codis]#bin/codis-config -c conf/config.ini server add 1VM-YZ-192.168.1.100:6379 master
添加一个redisslave到该group

[root@VM-YZ-192.168.1.100codis]#bin/codis-config -c conf/config.ini server add 1VM-YZ-192.168.1.100:6380 slave
类似的,再添加groupgroupid2

[root@VM-YZ-192.168.1.100codis]#bin/codis-config -c conf/config.ini server add 2VM-YZ-192.168.1.200:6379 master
[root@VM-YZ-192.168.1.100 codis]#bin/codis-config -c conf/config.ini server add2 VM-YZ-192.168.1.200:6380 slave

设置 servergroup 服务的slot 范围
[root@VM-YZ-192.168.1.100 codis]#bin/codis-config -c conf/config.ini slotrange-set 0 512 1 online
[root@VM-YZ-192.168.1.100 codis]#bin/codis-config -c conf/config.ini slotrange-set 513 1023 2 online

启动codis-proxy
[root@VM-YZ-192.168.1.100 codis]#bin/codis-proxy -c conf/config.ini -Llogs/proxy.log --cpu=6 --addr=0.0.0.0:19000 --http-addr=0.0.0.0:11000
[root@VM-YZ-192.168.1.100 codis]#bin/codis-proxy -c conf/config.ini proxyonline proxy_1

登陆web界面查看
0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:9506次
    • 积分:277
    • 等级:
    • 排名:千里之外
    • 原创:18篇
    • 转载:9篇
    • 译文:0篇
    • 评论:0条