Zookeeper集群-创新互联

Zookeeper介绍

站在用户的角度思考问题,与客户深入沟通,找到普洱网站设计与普洱网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计、网站建设、企业官网、英文网站、手机端网站、网站推广、空间域名、网页空间、企业邮箱。业务覆盖普洱地区。

ZooKeeper是一种集中式服务,用于维护配置信息,命名,提供分布式同步和组服务。所有这些类型的服务都以分布式应用程序的形式使用。它具有可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态 。

服务器规划

Zookeeper 集群

zookeeper集群中至少需要3台服务器,由于资源有限,我们就以3台服务器为例。

Zookeeper部署模式

Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。
  单机模式:Zookeeper只运行在一台服务器上,适合测试环境;
  伪集群模式:就是在一台物理机上运行多个 Zookeeper 实例;
  集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble)。

Zookeeper配置文件

官方给出的配置文件模板为 zoo_sample.cfg ,我们在实际环境中使用时,需要将其改为 zoo.cfg 。在192.168.2.177上操作

[root@rocketmq-nameserver1 conf]# vim zoo.cfg tickTime=2000initLimit=10syncLimit=5 dataDir=/wdata/zookeeper dataLogDir=/wdata/zookeeper/logs clientPort=2181 #maxClientCnxns=60 #autopurge.snapRetainCount=3 #autopurge.purgeInterval=1 server.1=192.168.2.177:2888:3888 server.2=192.168.2.178:2888:3888 server.3=192.168.2.180:2888:3888

配置文件说明:

server.X=A:B:C

其中 X 为服务器编号,A 为节点服务器的 IP 地址,B 为 Leader 通信端口,C 为 Zookeeper Leader选举端口

dataLogDir:zookeeper事务日志目录

dataDir:zookeeper数据存放目录

clientPort:客户端监听端口

syncLimit:集群中 flower 服务器(F)跟 leader(L)服务器之间的请求和答应最多能容忍的心跳数。

initLimit:集群中的 flower 服务器 (F) 与 leader 服务器 (L) 之间初始连接时能容忍的最多心跳数(tickTime的数量)。

tickTime:CS通信心跳时间,客户端与服务器或者服务器与服务器之间维持心跳,也就是每个tickTime时间就会发送一次心跳。通过心跳不仅能够用来监听机器的工作状态,还可以通过心跳来控制Flower跟Leader的通信时间,默认情况下FL的会话时常是心跳间隔的两倍。

Zookeeper集群

搭建Zookeeper集群前,我们需要修改系统的环境变量

分别在 192.168.2.177、192.168.2.178、192.168.2.180 上修改

[root@rocketmq-nameserver1 ~]# vim .bash_profile export JAVA_HOME=/usr/local/jdk1.8.0_201 export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.13 export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin

复制配置文件

我们将已配置好的配置文件分发到另外两台(178和180)服务器

for i in 178 180; do scp zoo.cfg root@192.168.2.$i ; done

我们再到三台服务器上添加服务器编号文件,文件中的内容为服务器编号,服务器的编号必须跟配置文件中的编号对应,否则集群无法启动。

[root@rocketmq-nameserver1 zookeeper]# vim myid

Zookeeper 集群

其他两台服务器的编号分别为2和3。

到这里,配置已经完成,接下来我们启动 zookeeper 服务。

分别在 3 台服务器上运行

[root@rocketmq-nameserver1 ~]# zkServer.sh start

Zookeeper 集群

查看 zookeeper 服务启动状态

[root@rocketmq-nameserver1 ~]# zkServer.sh status

Zookeeper 集群

Zookeeper 集群

到这里,zookeeper 集群搭建完成。

下面介绍zookeeper的常见命令

conf:  输出相关服务配置的详细信息。
cons: 列出所有连接到服务器的客户端的完全的连接 / 会话的详细信息。包括“接受 / 发送”的包数量、会话 id 、操作延迟、最后的操作执行等等信息。
dump:列出未经处理的会话和临时节点。
envi:  输出关于服务环境的详细信息(区别于 conf 命令)。
reqs: 列出未经处理的请求
ruok: 测试服务是否处于正确状态。如果确实如此,那么服务返回“imok ”,否则不做任何相应。
stat: 输出关于性能和连接的客户端的列表。
wchs:列出服务器 watch 的详细信息。
wchc:通过 session 列出服务器 watch 的详细信息,它的输出是一个与watch 相关的会话的列表。
wchp:通过路径列出服务器 watch 的详细信息。它输出一个与 session相关的路径。

zookeeper 命令行工具

通过 zkCli.sh 连接到 zookeeper 服务,如下

[root@rocketmq-nameserver2 ~]# zkCli.sh -server 192.168.2.178:2181

连接成功后会如下图所示:

Zookeeper 集群

在这里我们可以输入zookeeper命令进行相关操作。可以使用 help 进行帮助查询。下面是 zookeeper 命令行下的全部命令

stat path [watch]
set path data [version]
ls path [watch]
delquota [-n|-b] path
ls2 path [watch]
setAcl path acl
setquota -n|-b val path
history
redo cmdno
printwatches on|off
delete path [version]
sync path
listquota path
rmr path
get path [watch]
create [-s] [-e] path data acl
addauth scheme auth
quit
getAcl path
close
connect host:port

具体命令的使用,可参阅官方文档,这里不做过多介绍。

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享题目:Zookeeper集群-创新互联
当前URL:http://hbruida.cn/article/dphsih.html