据我所知,Corosync是消息传递层,Pacemaker是启动和停止服务的资源管理器,而Zookeeper会查看服务和资源,我们在zookeeper中注册资源和服务。谁能给我一个工作的例子,他们如何工作以及如何进行详细的工作。
最佳答案
Corosync是集群层:它允许主机发现彼此,选举主机并交换消息
Pacemaker是资源层:给定由Corosync提供的群集状态和资源配置,它会计算停止和启动资源的位置。如果群集的状态发生变化(添加或删除主机时),则Pacemaker会决定要执行的操作(例如,将资源移至另一台主机)。
显然,即使Pacemaker可以与Corosync之外的其他群集层一起工作,这两个几乎总是一起运行。
Zookeeper与Corosync / Pacemaker堆栈没有直接关系。它是一种分布式配置服务。它提供了几种原语,可以使程序执行以下操作:
共享通用配置(您可以将其视为键/值存储)
处理集群成员身份(例如,已连接的人,未连接的人,在组中注册的人)
进行选举
共享锁
通过队列交换消息
等等...使用Zookeeper原语可以完成很多有趣的事情。例如,请参见https://zookeeper.apache.org/doc/r3.5.0-alpha/recipes.html。
当您创建一个程序,然后使用Pacemaker / Corosync以冗余/分布式方式运行它时,您可以使用Zookeeper共享其配置,选择一个主服务器,共享锁等。但是是否存在其他系统,取决于您的需求(例如,如果您只需要队列,则AMQP服务器会更好,或者如果您需要存储大量键/值数据,则NOSQL服务器可能更合适)。
关于python - corosync,起搏器和动物园管理员如何相互关联?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36194526/