是否应该使用 Zookeeper 来报告进程状态?
Should Zookeeper be used to report process status?
在我的例子中,进程 P1 产生 P2、P3、P4 和许多其他进程。这些子进程可能在其他机器上。它们可以使用 Kubernetes 等编排系统生成。生成进程后,P1 想知道 P2 和其他进程的状态。是否应该使用 ZooKeeper 以便 P2 可以向 P1 发送心跳和其他状态消息?这是 Zookeeper 的用例之一吗?
对于单节点的情况,我猜不是。您生成的进程都在一台机器上。无需使用 ZK(通常用于维护集群的状态或元数据)
您可以使用IPC(例如,信号、套接字)来检查子进程在父进程中的状态。
此处更新
如果跨机器进程,我们可以使用ZK(使用临时和顺序节点)来维护组成员关系,这是ZK的典型用法,您可以参考下面的link了解更多详细信息.
顺便说一句,我们不需要自己发送心跳,当客户端连接到ZK时,就会建立一个会话(ZK客户端库会在会话空闲后自动发送心跳会话超时 / 3).
ZooKeeper: Wait-free coordination for Internet-scale systems, Section 2.4 Group Membership
在我的例子中,进程 P1 产生 P2、P3、P4 和许多其他进程。这些子进程可能在其他机器上。它们可以使用 Kubernetes 等编排系统生成。生成进程后,P1 想知道 P2 和其他进程的状态。是否应该使用 ZooKeeper 以便 P2 可以向 P1 发送心跳和其他状态消息?这是 Zookeeper 的用例之一吗?
对于单节点的情况,我猜不是。您生成的进程都在一台机器上。无需使用 ZK(通常用于维护集群的状态或元数据)
您可以使用IPC(例如,信号、套接字)来检查子进程在父进程中的状态。
此处更新
如果跨机器进程,我们可以使用ZK(使用临时和顺序节点)来维护组成员关系,这是ZK的典型用法,您可以参考下面的link了解更多详细信息.
顺便说一句,我们不需要自己发送心跳,当客户端连接到ZK时,就会建立一个会话(ZK客户端库会在会话空闲后自动发送心跳会话超时 / 3).
ZooKeeper: Wait-free coordination for Internet-scale systems, Section 2.4 Group Membership