应该使用Zookeeper报告流程状态吗?

问题描述

在我的情况下,进程P1生成P2,P3,P4和许多其他进程。这些子进程可能在其他计算机上。可以使用诸如Kubernetes之类的编排系统来生成它们。在生成该进程之后,P1想知道P2和其他进程的状态。是否应该使用ZooKeeper,以便P2可以向P1发送心跳和其他状态消息?这是Zookeeper的用例之一吗?

解决方法

对于单节点,我想不是。您产生的过程都在一台机器上。无需使用ZK(通常用于维护集群的状态或元数据)

您可以使用IPC(例如,信号,套接字)来检查子进程在父进程中的状态。

此处更新

如果跨机器的进程,我们可以使用ZK(使用临时节点和顺序节点)来维护组成员身份,这是ZK的一种典型用法,有关更多详细信息,请参考以下链接。

顺便说一句,我们不需要自己发送心跳,当客户端连接到ZK时,便建立了一个会话(会话闲置达 session timeout / 3后,ZK客户端库将自动发送心跳。 )。

ZooKeeper: Wait-free coordination for Internet-scale systems,Section 2.4 Group Membership

Apache Curator Group Membership