美食家大橙子 发表于 2024-6-24 08:55:38

第2关:伪分布式体验及分布式安装配置

服务器leader推举
为进一步相识ZooKeeper的leader推举过程,本节实训利用服务器的关闭启动,观察服务器的leader产生过程。利用以下下令查看当前服务器节点的状态(/xxx为安装目录):
./xxx/bin/zkServer.sh status 当仅启动1个服务器节点,服务器状态如下:
https://img-blog.csdnimg.cn/e1dd7d1660d244a781c7637678324241.pnghttps://img-blog.csdnimg.cn/9bc20d8184bc488093d06888d84d9eda.png
 

服务器通信报错,集群未运行(3个节点,法定人数至少为2)。
当启动第2个节点后,分别查看第1个和第2个服务器状态:
https://img-blog.csdnimg.cn/7a8b60818de5418d95a4d3b86b02e608.png 


可以发现,第1个服务器转换为follower,第2个服务器转换为leader(可对比上一关启动时leader推举过程)。
当启动第3个节点后,由于已经存在了leader,那么第3个节点应该为follower,查看状态如下:
https://img-blog.csdnimg.cn/28551621b13a421da65d3737f8f4a6d3.png
 

此时,关闭第2个节点,即模拟leader瓦解。那么按照上一关所述,myid较大的节点成为leader,即第3个节点成为leader,关闭第2个节点并查看第3个节点状态:
https://img-blog.csdnimg.cn/8b92e6665df44c2fa47f8964dae60892.png
 

客户端毗连服务器
客户端毗连多个服务器与毗连单个服务器下令相同,利用以下下令毗连:
zkCli.sh -server 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183 此中,每1个逗号为1个服务器(IP + clientPort)。
可以通过启动下令行,看到当前客户端详细毗连到哪一个服务器。如下图所示:
https://img-blog.csdnimg.cn/ccabc8052d0141eaa0d7af44e593dda9.png
 

如果毗连的127.0.0.1:2181服务器节点(即第1个服务器节点)瓦解,是否会拒绝毗连。关闭第1个服务器节点,观察客户端行为:

https://img-blog.csdnimg.cn/5f4477335691472f98318aff1c98a527.png
 https://img-blog.csdnimg.cn/975f6a6daec54458a7e4d62de5018ce8.png
 

可以发现,当前毗连的服务器瓦解或失去毗连时,客户端会自动毗连及此中其他服务器,从而保证ZooKeeper服务可用。
当继续关闭第127.0.0.1:2182服务器节点(即第2个服务器节点),是否会拒绝毗连。关闭第2个服务器节点,观察客户端行为:

https://img-blog.csdnimg.cn/009f2aa1bd114ab2bd73dcef8a2c83ed.png
 

当存活服务器小于法定人数时,服务器会拒绝毗连,即使当前第3个节点仍然存活。
分布式配置
分布式配置与伪分布式配置,主要有以下区别,别的配置均相同:


[*] 伪分布式所利用的端口必须差别,分布式端口可以相同。
[*] 伪分布式同一利用一个IP,分布式需要根据当前网络IP配置。
以下为分布式与伪分布式配置对比(以3个服务器节点为例):
配置伪分布式分布式clienPort2181;2182;21832181;2181;2181server.1127.0.0.1:2888:3888xxx.xxx.xxx.xxx:2888:3888server.2127.0.0.1:2889:3889xxx.xxx.xxx.xxx:2888:3888server.3127.0.0.1:2890:3890xxx.xxx.xxx.xxx:2888:3888 编程要求
本关任务是利用下令行,按顺序完成以下利用:


[*] 在前一关的底子上,将客户端毗连服务器(IP:127.0.0.1,端口分别为2181,2182,2183)。
[*] 观察当前客户端毗连的服务器。
[*] 创建/quorum_test节点,节点数据为quorum_test。
[*] 断开客户端与服务器毗连(quit下令)。

第一关利用乐成底子上利用
启动节点
/opt/zookeeper-3.4.12/bin/zkServer.sh start
/opt/zookeeper-3.4.12-01/bin/zkServer.sh start
/opt/zookeeper-3.4.12-02/bin/zkServer.sh start
/opt/zookeeper-3.4.12-03/bin/zkServer.sh start https://img-blog.csdnimg.cn/36feeeb5283c49a18a4bfaaeaca18ea3.png
 
客户端连接服务器
zkCli.sh -server 127.0.0.1:2181
创建节点
create /quorum_test "quorum_test"
关闭节点
quit


zkCli.sh -server 127.0.0.1:2182
create /quorum_test "quorum_test"
quit


zkCli.sh -server 127.0.0.1:2183
create /quorum_test "quorum_test"
quit https://img-blog.csdnimg.cn/5c6762e7e8b849ddb84802bd591905d9.png
 https://img-blog.csdnimg.cn/2a78055d9e914758bf42fe5e20226af7.png
 


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 第2关:伪分布式体验及分布式安装配置