c++ - 使用 ZeroMQ 构建对等工作负载调度程序是否有帮助?

标签 c++ routing scheduling xml-rpc zeromq

我正在编写一个工作负载调度程序。我希望我的软件成为点对点调度程序,即。一个节点只知道一些邻居(其他节点)并使用它们到达其他节点。

每个节点都有自己的加权路由表来向其他对等点发送消息(基本上基于跳数),即。 “我希望主人给我我的时间表”或“节点 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/

相关文章:

c++ - 二项式随机数生成

c# - ASP.NET MVC、本地化路由和用户的默认语言

c++ - 我将如何实现 FCFS 处理器调度模拟器?

c++ - 如何在执行应用程序时获取已用内存量

c++ - 指针和指向引用的指针

c++ - Xlib 测试窗口名称

c# - 使用参数在 blazor 中重定向

symfony - Silex:带有可选参数的路由不起作用

java - quartz 我如何将 JobExecutionContext 和 Scheduler 的范围更改为类级别?

linux - 确保所有 Linux 系统线程都在核心 0 上运行