gpt4 book ai didi

c - 用于进程间通信的 ZeroMQ 套接字类型是什么?

转载 作者:太空狗 更新时间:2023-10-29 17:25:38 25 4
gpt4 key购买 nike

当我有两个线程时,我使用 PAIR socket 类型。但是现在我使用的是两个进程,它们可以在一台机器上,也可以在不同的机器上。我不需要请求和响应,我不需要发送到多个节点,等等。我需要与 PAIR(异步、双向)相同的东西,但需要进程和网络。我应该使用什么套接字类型?

最佳答案

不幸的是,你的世界变得有点复杂了。在更广泛的分布式系统中,没有直接模拟 PAIR/PAIR 套接字配对。

就是说,如果您保持大致相同的拓扑形状(两个节点只相互连接,没有其他节点),那么您几乎可以使用 ROUTER/DEALER 或甚至 DEALER/DEALER(如您在评论中所建议的那样)。这些套接字有点像 REQ/REP,但它们不强制执行严格的请求/响应通信模式,它们完全不受限制,所以实际上你得到的是同样的东西。唯一的问题是如果你打算添加更多的节点,此时你必须开始以不同的方式管理事情,特别是 DEALER 套接字不允许你选择发送到哪个节点,这是严格的循环。

但是,这样做应该可以得到您想要的东西(异步、双向)。

ROUTER 套接字类型可能需要一些额外的复杂性,因为您需要跟踪另一个节点的“标识符”以便能够发送回它(您可以得到这个 几乎是免费的,尤其是在你只有一个同伴的情况下,通过直接在发送的消息中使用它)。因为这是排他对,你可以忽略 DEALER 套接字引入的循环不确定性,直接进入 DEALER/DEALER,这给你一个不受限制的消息模式,不需要任何身份管理。

关于c - 用于进程间通信的 ZeroMQ 套接字类型是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24122018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com