首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将状态分布在多台机器上

将状态分布在多台机器上
EN

Stack Overflow用户
提问于 2011-09-05 19:41:33
回答 3查看 422关注 0票数 7

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

根据我的搜索,我没有发现任何(C、C++或JavaME)库提供分布式状态机制。理想情况下,我正在寻找定期广播/多播每个单独的机器状态的东西,这样参与的机器就可以建立一个全局状态表,所有的机器都可以看到谁应该是主机。这种情况下的状态是任意的键/值对。

我不想重新发明任何轮子,所以我很好奇这里有没有人能给我指路?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-12 04:55:11

我不知道有没有适合你的申请。但我知道你可以用MPI库写一个简单的程序,并广播任何你想要的信息。

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

为此,您需要的函数包括:

代码语言:javascript
复制
MPI_Bcast
MPI_Send
MPI_Recv

网上有很多关于C++/MPI的教程,谷歌一下就知道了!

票数 1
EN

Stack Overflow用户

发布于 2011-09-05 22:25:00

如果我是你,我会研究memcached (memcached.org)或者nosql的变种。

票数 2
EN

Stack Overflow用户

发布于 2011-09-12 05:16:07

听起来Apache ZooKeeper可能是一个很好的匹配。它是分布式的、层次化的键值存储。引用他们的Overview page

ZooKeeper旨在存储协调数据:状态信息、配置、位置信息等。

下面是一个简单的Leader Election recipie示例,尽管它需要进行调整才能通过某种加权标准来确定领导者。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7307540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档