如果一个动物园管理员死了,我会期待什么样的行为?

时间:2017-05-25 05:51:15

标签: client apache-zookeeper

我们有没有办法在zookeeper serevers上创建手表?如果我有5个zookeeper服务器,如果一个粉丝死了,我会期待什么样的行为?现有的请求会被中止吗?或者另一个动物园管理员会照顾这些?

如何透明地将客户端移动到另一个zookeeper?

米娜

1 个答案:

答案 0 :(得分:0)

  

我们有没有办法在zookeeper serevers上创建手表?

不,手表只在znodes上设置,znodes是客户端写入ZooKeeper集群的数据项。客户端没有机制接收群集停止中服务器的自动通知。

  

如果我有5个zookeeper服务器,并且如果一个追随者死亡,我会期待什么行为?

死亡时连接到关注者的客户端将使用其他服务器重新连接到ZooKeeper群集。只要仍有法定数量的可用服务器,群集将保持读写流量的功能。如果该服务器稍后重新启动并重新联机,那么它将与一台好的服务器重新同步以赶上错过的交易。

  

现有的请求会被中止吗?或者另一个动物园管理员会照顾这些?如何将客户透明地转移到另一个动物园管理员?

对于正确编码的ZooKeeper客户端应用程序,错误处理将重新连接到群集中的其他服务器并继续其事务。 ZooKeeper客户端内部心跳与其连接的服务器。如果连接丢失,则会向客户端分派“连接丢失”事件。这是客户重新建立所需状态的机会。

有关详细信息,建议您阅读ZooKeeper Programmer's GuideRecipes and Solutions,其中包含具有正确错误处理和恢复的典型用例的工作示例。另一个潜在的考虑因素是使用Apache Curator库,它具有分布式锁等更高级结构的工作实现,并具有正确的错误处理和恢复。