Zookeeper伪集群搭建

本文深入探讨集群的概念,强调其可扩展性、高可用性和负载均衡特性,并详细讲解Zookeeper集群的搭建过程,包括环境准备、配置及启动步骤。

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

什么是集群?

集群是一种计算机系统, 它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多。

集群的特点:

1.可扩展性:集群的性能不限制于单一的服务实体,新的服务实体可以动态的添加到集群,从而增强集群的性能。

2.高可用性:集群当其中一个节点发生故障时,这台节点上面所运行的应用程序将在另一台节点被自动接管,消除单点故障对于增强数据可用性、可达性和可靠性是非常重要的。

集群的两大能力:

1.负载均衡:负载均衡把人物比较均匀的分布到集群环境下的计算和网络资源,以提高数据吞吐量。

2.错误恢复:如果集群中的某一台服务器由于故障或者维护需要无法使用,资源和应用程序将转移到可用的集群节点上。这种由于某个节点的资源不能工作,另一个可用节点中的资源能够透明的接管并继续完成任务的过程,叫做错误恢复。

为什么需要搭建zookeeper集群?

大部分分布式应用需要一个主控、协调器或者控制器来管理物理分布的子进程。目前,大多数都要开发私有的协调程序,缺乏一个通用机制,协调程序的反复编写浪费,且难以形成通用、伸缩性好的协调器,zookeeper提供通用的分布式锁服务,用以协调分布式应用。所以说zookeeper是分布式应用的协作服务。zookeeper作为注册中心,服务器和客户端都要访问,如果有大量的并发,肯定会有等待。所以可以通过zookeeper集群解决。

搭建伪集群:

准备工作:

(1)、安装JDK

(2)、将zookeeper压缩包上传到服务器(下载地址:http://mirrors.shu.edu.cn/apache/zookeeper/)

(3)、将Zookeeper解压,创建data目录,将conf下zoo_sample.cfg文件改名为zoo.cfg

(4)、建立/usr/local/zookeeper-cluster目录,将解压后的Zookeeper复制到以下三个目录:

/usr/local/zookeeper-cluster/zookeeper-1
/usr/local/zookeeper-cluster/zookeeper-2
/usr/local/zookeeper-cluster/zookeeper-3   

命令:       

cp -r zookeeper /usr/local/zookeeper-cluster/zookeeper-1

cp -r zookeeper /usr/local/zookeeper-cluster/zookeeper-2

cp -r zookeeper /usr/local/zookeeper-cluster/zookeeper-3

(5)、配置每一个Zookeeper的dataDir(zoo.cfg) clientPort分别为2181 2182 2183

命令:         

vim /usr/local/zookeeper-cluster/zookeeper-1/conf/zoo.cfg

vim /usr/local/zookeeper-cluster/zookeeper-2/conf/zoo.cfg 

vim /usr/local/zookeeper-cluster/zookeeper-3/conf/zoo.cfg  

            clientPort=2181

            dataDir=/usr/local/zookeeper-cluster/zookeeper-1/data

            clientPort=2182

            dataDir=/usr/local/zookeeper-cluster/zookeeper-2/data

            clientPort=2183

            dataDir=/usr/local/zookeeper-cluster/zookeeper-3/data

配置集群:

(1)、在每个zookeeper的data目录下创建一个myid文件,内容分别是1、2、3。这个文件就是记录每个服务器的ID  

命令:

cd /usr/local/zookeeper-cluster/zookeeper-1/data

        echo 内容 > 文件名

echo 1 > myid

echo 2 > myid

echo 3 > myid

(2)、在每一个zookeeper的zoo.cfg配置客户端访问端口(clientPort)和集群服务器IP列表

      server.服务器ID=服务器IP地址:服务器之间通信端口:服务器之间投票选举端口

        集群服务器IP列表如下:

server.1=192.168.25.128:2881:3881
server.2=192.168.25.128:2882:3882
server.3=192.168.25.128:2883:3883 

启动集群:

启动集群就是分别启动每个示例。

命令:       

/usr/local/zookeeper-cluster/zookeeper-1/bin/zkServer.sh start

/usr/local/zookeeper-cluster/zookeeper-2/bin/zkServer.sh start

/usr/local/zookeeper-cluster/zookeeper-3/bin/zkServer.sh start

     启动后我们查询每个实例的运行状态 

命令:           

/usr/local/zookeeper-cluster/zookeeper-1/bin/zkServer.sh status

/usr/local/zookeeper-cluster/zookeeper-2/bin/zkServer.sh status

/usr/local/zookeeper-cluster/zookeeper-3/bin/zkServer.sh status

第一个服务:

        Mode为follower表示是跟随者(从)

第二个服务:

     Mode为leader表示是领导者(主)

第三个服务也是follower(跟随者)

当集群中的主服务区挂了,集群中的其他服务器会自动进行选举状态,然后产生新的leader

当领导者产生后,再次有新服务器加入集群,不会影响到现任领导者。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值