问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Zookeeper集群搭建及问题总结:深入理解Zookeeper集群架构

创作时间:
作者:
@小白创作中心

Zookeeper集群搭建及问题总结:深入理解Zookeeper集群架构

引用
51CTO
1.
https://blog.51cto.com/u_12227/10286675

Zookeeper是一个分布式协调服务,广泛应用于分布式系统中。本文将详细介绍Zookeeper的集群搭建以及遇到的问题总结,帮助读者更好地理解和使用Zookeeper。

Zookeeper的集群模式

在集群模式中,Zookeeper需要复制他们的数据信息来保证所有的服务端信息一致性。例如,如果有5台Zookeeper服务器,但是可以有三个集群的话,那么客户端只需要在3个集群信息保持一致的话,就可以进行以下的操作,后面的2台Zookeeper服务器最终会赶上和存储数据。

重要的是如何选择一个适当的大小的群体,最后必须保证,无论延迟和系统崩溃,任何更新请求,服务都可以执行下去。

在一个有5个节点的集合体中,每个Follower节点的数据都是Leader节点数据的副本,也就是说我们的每个节点的数据视图都是一样的,这样就可以有五个节点提供ZooKeeper服务。并且集合体中任意2台机器出现故障,都可以保证服务继续,因为剩下的3台机器超过了半数。

客户端与服务端的交互

客户端需要通过导入客户端的类库与服务端进行通信。在客户端与Zookeeper交互之前,客户端必须与服务端建立一个会话。会话是必须的,任何客户端的操作都必须在会话中完成,一旦会话结束,临时节点也将会消失。

会话保证了顺序的执行,这意味着请求在一个会话中执行FIFO(先进先出)。通常情况下,一个客户只有一个会话打开,所以它的请求都是先进先出顺序执行。如果一个客户有多个并发会话,先进先出顺序不一定是保存在会话。连续会话相同的客户,即使他们不重叠,也不一定保持先进先出顺序。这是可能发生在这种情况下:

  1. 客户端建立一个会话,使连续两个异步调用创建/task和/worker
  2. 第一个回话过期了
  3. 客户端创建了另外一个回话,异步的调用创建了/assign

在这个调用序列,它是可能的,只有创建了/task和/assign,它保留了第一次回话中先进先出的顺序,但违反了跨回话。

总结

本文详细介绍了Zookeeper的集群搭建以及遇到的问题总结,包括Zookeeper的集群模式、数据复制机制以及客户端与服务端的交互方式。这些内容对于理解和使用Zookeeper具有很高的参考价值。

本文原文来自51CTO

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号