在多台机器上分配状态

我想写一个需要了解群集中其他机器状态的工具(本地局域网)。 这是一个类似于VRRP和corosync / openais的networking故障转移/高可用性系统,但是我希望包含更多的信息(如接近实时的速度/性能特征),所以设备可以做出更明智的select。 这意味着使用比预定的基于权重的机制更复杂的协议:通过允许所有群集机器看到彼此的状态,他们可以共同地认同哪个最适合作为主设备。

从我的search中,我没有find任何提供分布式状态机制的(C,C ++或JavaME)库。 理想情况下,我正在寻找一些广播/组播每个单独的机器状态,所以参与的机器可以build立一个全局状态表,所有人都可以看到谁是主人应该。 在这种情况下,状态是任意的键/值对。

我宁愿不重新发明任何轮子,所以很想知道这里有没有人能指出我正确的方向?

我不确定是否有任何申请你的目的或不。 但是我知道你可以用MPI库编写一个简单的程序,并且可以播放你想要的任何信息。

所有客户端都可以将其状态发送到根节点,然后根节点广播该消息。

你需要的功能是:

MPI_Bcast MPI_Send MPI_Recv 

在网上有很多关于C ++ / MPI的教程,只是谷歌!

如果我是你,我会调查memcached(memcached.org)或其中一个nosql变种。

这听起来像Apache ZooKeeper可能是一个很好的匹配。 它是分布式的分层键值存储。 引用他们的概述页面 :

ZooKeeper被设计用于存储协调数据:状态信息,配置,位置信息等

这里有一个简单的领袖选举收件人的例子,虽然它将需要适应,以确定一个加权标准的领导者。