使用ZeroMQ构建点对点工作负载调度器是否有帮助?
Is it helpful to use ZeroMQ to build a peer-to-peer workload scheduler?
我正在编写一个工作负载调度器。我希望我的软件是一个点对点调度程序,即。一个节点只知道一些邻居(其他节点),并使用它们到达其他节点。
每个节点都有自己的加权路由表来向其他节点发送消息(基本上基于跳数),即。"我想让主节点给我时间表"或"资源A在节点B上可用吗?":哪个邻居离我的目标最近?
例如,我使用XML-RPC
(xmlrpc-c
)和std::multimaps
/std::maps
编写了自己的路由协议。
我正在考虑使用ZeroMQ
来优化我的数据流:
- 队列可以减少对等体之间的网络负载;
- 订阅可用于发布升级。
结果:
- 我将需要打开尽可能多的套接字,因为我将创建新的连接类型;
- 每个节点需要是客户端、服务器、发布者、订阅者、代理和目录;
- 我不确定我的"点对点架构"是否与ZeroMQ的主要目的兼容。
你认为ZeroMQ
是一个有用的概念吗?
确切地知道你所说的"路由协议"是什么意思将会很有帮助。听起来您指的是路由到特定对等点的业务逻辑。更全面地了解您希望使用ZeroMQ实现的目标也会有所帮助。
你读过ZeroMQ指南吗?ZeroMQ是一个非常不同的野兽,不花点时间玩它,你会你可能会感到困惑。作为奖励,阅读指南也会帮助你回答问题这个问题留给你自己,因为你更了解你的需求。
ZeroMQ旨在构建健壮的分布式和多线程应用程序。由于分布式应用程序通常可以采用"点对点"的形式,因此ZeroMQ确实可以很好地满足您的需求。
相关文章:
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 关于std::move的使用,是否有编译警告
- 是否有C++编译器选项允许激进地删除所有函数调用,并将参数传递给具有空体的函数
- 是否有类似std::lower_bound的函数,而不需要排序/分区输入
- 在C++中,使用带有 std::optional 参数的函数<T>来表示可选参数是否有意义?
- 是否有任何C++功能可以对地图进行排序?
- 是否有内置方法可以强制转换为不同的基础类型,但保留常量限定符?
- 用于检查数字是否有数字或可被该数字的值整除的程序
- 在Arduino中将PWM通道命名为LEDC是否有特定原因
- boost 是否有按特殊类型值编码状态"compact optional"?
- 有没有办法在 c++ 中同时生成随机数?如果没有,是否有解决方法?
- 是否有任何建议来统一函数类型限定符并简化可恶的函数类型?
- 尝试区块对于"zero-cost"堆栈平仓策略是否必要甚至有帮助?
- C++ 将多头、空头和所有整数转换为uint32_t、int32_t等是否有帮助
- std::chrono中是否有帮助注入system_clock进行单元测试的设施
- 使用ZeroMQ构建点对点工作负载调度器是否有帮助?
- 是否有一些类似于boost program_options的c++库/源代码,但用于*键盘快捷键自动生成帮助*
- 是否有一种工具可以帮助理解谁将特定的参数传递给函数,以及该变量最初是在哪里创建的(在C/ c++中)
- 在boost中是否有一个安全的bool习惯用法帮助器
- 是否有可能帮助分支预测