用于主从通信的IPC机制



我有一个要求,主进程需要向从进程发送命令,而从进程需要确认。我正在尝试在 ZMQ 中使用请求-响应模式,方法是将主服务器作为响应服务器,从属作为请求客户端。但是每次从站都需要向主服务器请求命令,这是不可取的。而且我不确定该请求是否有任何到期时间。我只想要两个进程之间的全双工通信。还有什么其他选择比这更好?

注意:我的主站是用C写的,从站是用C#写的。

使用一个具有硬连线可扩展正式通信模式行为
的特定 ZeroMQ 原型

只有在两个代理端行为都匹配原型行为的情况下才有意义。

这意味着,只要自由形式(临时)行为成为可能,就直接忘记使用REQ/REP等。

人们可以享受PUSH/PULL串联或PAIR/PAIR模式,其中您的代理不会陷入一些硬编码的消息排序或等待从未应答/丢失的消息的僵局,然后才能.send()并传递下一个消息给它的分布式交易对手。

是的,它会让你设计自己的消息计数、超时、服务看门狗/保持连接信号、消息重新发送和类似的健壮性激励策略,但这是分布式计算的面包和黄油,不是吗?

无论如何,享受这种进入分布式计算的疯狂旅程,并且可能对有关ZeroMQ工具电源使用的其他相关文章感兴趣(包括参考Pieter HINTJENS的一本优秀书籍 - "Code Connected,Vol. 1" ---必读...

鉴于主站必须能够向特定的从站发送消息,我推荐这种方法。 主服务器将绑定单个路由器套接字。 每个从站将使用单个经销商插座连接到主路由器。 (所以从站必须知道主站的地址和路由器端口。

连接后,每个从站都会向主站发送某种"hello"消息,让主站知道它是什么类型的从站(或者,它可以执行什么类型的任务)。 现在,当奴隶上线时,主人将知道它们是什么类型,并能够向他们发送消息。

这是一个相当高级的 ZeroMQ 配置。 在你尝试之前,我建议你用路由器和经销商套接字对编写一个非常基本的主/从应用程序。 您应该至少阅读指南的第 1-3 章。 至少您必须了解路由器套接字的工作原理

最新更新