Codis集群

本文介绍了Codis集群的详细步骤,包括Codis的原理、架构、优缺点以及Zookeeper的使用。在集群搭建过程中,涉及到Go环境配置、Zookeeper安装、Codis组件启动等,同时针对遇到的问题如server4无法作为master节点进行了分析和解决方案的探讨。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Codis集群

了解,摸索		肯定有不完善的地方和我解释不出来的地方还望海涵。

Codis是什么、原理、构架、优缺点、及zookeeper

Codis集群的搭建部署

准备

四个包、三台虚拟机

codis-release3.2.zip			#从我们老师那里拿的		  
go1.9.1.linux-amd64.tar.gz  	#从同学那里copy
zookeeper-3.4.14.tar.gz			#从同学那里copy	
jdk-8u121-linux-x64.rpm			#/pub/docs/lamp/拿得。		懂得都懂

实验步骤

如果之前做过redis的服务,将redis服务停掉,因为会占用6379端口。
1、安装go,这里选用的版本为go1.9.1——因为codis3.2要求至少是1.7或1.8以上版本。

[root@server4 ~]# tar zxf go1.9.1.linux-amd64.tar.gz -C /usr/local/ 

在这里插入图片描述

2、配置环境变量

[root@server4 local]# vim /etc/profile
export GOROOT=/usr/local/go				#在最后添加
export GOPATH=/usr/local/codis
export PATH=$PATH:/usr/local/go/bin
[root@server4 local]# source /etc/profile		#重新加载环境变量

3、对codi进行源码编译,编译codis时依赖go,所以在安装codis先装好go。

[root@server4 local]# mkdir -p $GOPATH/src/github.com/CodisLabs		#设置编译环境
[root@server4 local]# cd 
[root@server4 ~]# unzip codis-release3.2.zip -d  $GOPATH/src/github.com/CodisLabs	#没有unzip就装一个
[root@server4 ~]# cd $GOPATH/src/github.com/CodisLabs
[root@server4 CodisLabs]# mv codis-release3.2/ codis	#为了方便   名字无所谓
[root@server4 CodisLabs]# cd codis/
[root@server4 codis]# yum install gcc git autoconf -y	
#gcc二进制编译器
#Git 用以计算校验和的机制叫做 SHA-1 散列(hash,哈希)。 这是一个由 40 个十六进制字符(0-9 和 a-f)组成的字符串,基于 Git 中文件的内容或目录结构计算出来。
#Autoconf是一个用于包,以适应多种Unix类系统的 shell脚本的工具。由Autoconf生成的配置脚本在运行的时候与Autoconf是无关的, 就是说配置脚本的用户并不需要拥有Autoconf。
以上全是百度出来的,不知在此环境是否解释的通。gcc肯定没错(小声比比。。

我是实验过不装autoconf,会报错,我能力有限看不了报错。
在这里插入图片描述

4、进行编译安装
在这里插入图片描述在这里插入图片描述
5、安装JDK

[root@server4 ~]# yum install jdk-8u121-linux-x64.rpm -y
[root@server4 ~]# java -version 

在这里插入图片描述6、安装zookeeper

[root@server4 ~]# tar zxf zookeeper-3.4.14.tar.gz -C /usr/local/
[root@server4 ~]# cd /usr/local/
[root@server4 local]# mv zookeeper-3.4.14/ zookeeper

7、编辑环境变量

[root@server4 local]# vim /etc/profile
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:/usr/local/go/bin:$ZOOKEEPER_HOME/bin
[root@server4 local]# source /etc/profile

8、修改zookeeper的配置文件

[root@server4 local]# cd /usr/local/zookeeper/conf/
[root@server4 conf]# cp  zoo_sample.cfg   zoo.cfg   #zoo.cfg  不能乱改,否则还得再改一个配置文件
[root@server4 conf]# vim zoo.cfg 
tickTime=2000      #一个周期(tick)的时长(单位:毫秒)
initLimit=10       #初始化同步阶段最多耗费tick个数
syncLimit=5        #等待应答的最大间隔tick个数 
dataDir=/data/zookeeper/data   #该目录需要手动建立。
clientPort=2181                #客户端连接server的端口,即对外服务端口,一般设置为 2181 
maxClientCnxns=60              #最大连接数设置(单ip限制). 注:默认60,设成0即无限制
autopurge.purgeInterval=24     #ZK提供了自动清理事务日志和快照文件的功能,这个参数指定了清理频率,单位是小时
autopurge.snapRetainCount=500  #这个参数和上面的参数搭配使用,这个参数指定了需要保留的文件数目。默认是保留3个

9、设置myid在我们配置的dataDir指定的目录下面,创建一个myid文件,里面内容为一个数字(该数字的取值范围是1-255),用来标识当前主机,conf/zoo.cfg文件配置的server.X中的X是什么数字,则myid文件就输入这个数字,我只有一台zk,所以配置文件里可以不配置server.X,但还是要配置myid 的,echo一个数字1进去即可。

[root@server4 conf]# mkdir /data/zookeeper/data -p
[root@server4 conf]# echo "1" > /data/zookeeper/data/myid
[root@server4 conf]# cat /data/zookeeper/data/myid
1

10、启动zookeeper
[root@server4 conf]# cd /usr/local/zookeeper/bin
[root@server4 bin]# ./zkServer.sh start
[root@server4 bin]# ./zkServer.sh status

11、对codis进行配置,并启动codis的各个组件。编辑/usr/local/codis/config.ini文件并启动codis-dashboard组件
###!启动dashboard前,必须启动zookeeper服务

[root@server4 bin]# vim /usr/local/codis/config.ini
		zk=localhost:2181
        product=meng
        proxy_id=proxy_1
        net_timeout=5
        dashboard_addr=localhost:18087
        coordinator=zookeeper
[root@server4 bin]# cd $GOPATH/src/github.com/CodisLabs/codis/admin
[root@server4 admin]# ./codis-dashboard-admin.sh start		#启动codis-dashboard组件
[root@server4 admin]# ./codis-proxy-admin.sh start			#启动codis-proxy组件
[root@server4 admin]# ./codis-fe-admin.sh start				#启动codis-fe组件
[root@server4 admin]# ./codis-server-admin.sh start			#启动codis-server组件
[root@server4 admin]# netstat -antlp	

在这里插入图片描述
在这里插入图片描述12、配置server1和server3,步骤完全相同。

有个配置文件不同

[root@server1 ~]# cd /usr/local/codis/src/github.com/CodisLabs/codis/config/
[root@server1 config]# vim redis.conf 

在这里插入图片描述启动

[root@server1 config]# cd /usr/local/codis/src/github.com/CodisLabs/codis/admin
[root@server1 admin]# ./codis-server-admin.sh start
[root@server1 admin]# netstat -antlp

在这里插入图片描述
在这里插入图片描述
13、测试:172.25.111.4:9090,进入web管理界面

在这里插入图片描述

在这里插入图片描述

还是有些问题,server4不可以当master,添加了第一个组就无法删掉(我能力有限)。能演示的办法是创建一个新的组,把server4排除在外。在这里插入图片描述我们会发现,还是down的情况,依次点2组的绿色扳手,给他key。在这里插入图片描述现在没有红(指错误),我们去到server3中的/usr/local/codis/src/github.com/CodisLabs/codis/config 看redis.conf最后一行会出现slaveof 172.25.111.1 6379

我们修改成 172.25.111.4 6379 并重新启动./codis-server-admin.sh restart在/usr/local/codis/src/github.com/CodisLabs/codis/admin

重新刷新页面
在这里插入图片描述
不出所料,down掉了。点扳手。将会自动更改回来。

连接不上server4的可能情况(我猜想的、猜想的):

1、构架我没有理解透彻,可能与server4连接上没有关系,server4只负责中转或连接server1和server3。

2、server4的bind 127.0.0.1的监听ip没有写上,导致别人连接不上它。(实验过了、没用)

补充:我参考同学的做了一个 127.0.0.1 server4 中的模拟分片(额… 是这个术语吧。

在server4上

[root@server4 config]# cp redis.conf redis6381.conf
[root@server4 config]# vim redis6381.conf   #修改
port 6381
pidfile "/tmp/redis_6381.pid"
logfile "/tmp/redis_6381.log
[root@server4 config]# cd ..
[root@server4 codis]# ./bin/codis-server ./config/redis6381.conf  #加载

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值