我正在编写一个工作负载调度程序。我希望我的软件成为点对点调度程序,即。一个节点只知道一些邻居(其他节点)并使用它们到达其他节点。
每个节点都有自己的加权路由表来向其他对等点发送消息(基本上基于跳数),即。 “我希望主人给我我的时间表”或“节点 B 上的资源 A 可用吗?” : 哪个邻居最接近我的目标?
例如,我使用 XML-RPC
(xmlrpc-c
) 和 std::multimaps
/ 编写了自己的路由协议(protocol)>std::maps
.
我正在考虑使用 ZeroMQ
来优化我的数据流:
- 排队可以减少对等点之间的网络负载;
- 订阅可用于发布升级。
因此:
- 我需要打开与创建新连接类型一样多的套接字;
- 每个节点都需要是客户端、服务器、发布者、订阅者、代理和目录;
- 我不确定我的“点对点架构”是否与 ZeroMQ 的主要目的兼容。
您认为 ZeroMQ
是一个有用的概念吗?
最佳答案
准确了解“路由协议(protocol)”的含义会很有帮助。 这听起来像是您指的是路由到特定对等点的业务逻辑。 更全面地了解您希望使用 ZeroMQ 实现的目标也会有所帮助。
你读过ZeroMQ Guide吗? ? ZeroMQ 是一个非常不同的野兽,如果不花一些时间来玩它,你会 可能会发现自己很困惑。作为奖励,阅读指南也将帮助您回答 这个问题问你自己,因为你更了解自己的要求。
ZeroMQ 旨在构建健壮的分布式和多线程应用程序。由于分布式应用程序通常可以采用“点对点”的形式,因此 ZeroMQ 确实可以很好地满足您的需求。
关于c++ - 使用 ZeroMQ 构建对等工作负载调度程序是否有帮助?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8158354/