gpt4 book ai didi

ZeroMQ 管道返回初始客户端

转载 作者:行者123 更新时间:2023-12-02 07:32:18 25 4
gpt4 key购买 nike

我想要完成的要点是进行扇出类型的处理,将结果返回给初始客户端。

现在,它设置为:

[REQ]-->[ROUTER|PUB]-->[SUB|PUSH]-->[PULL|???]

我将其设置为 PUB-SUB,因为每个 SUB 节点将处理给定 list 的不同部分。对于某些 list ,所有 SUB 节点都会被命中。对于其他 list ,可能只有 SUB 节点的子集被命中。使用 SUB 允许我实现它,而无需在路由到哪些节点上创建离散的决策点。

我已经或多或少能够将结果整合在一起,但我不知道如何在没有调用者绑定(bind)的情况下将结果返回给 REQ 上的初始调用者在客户端创建一个新套接字,然后连接到该套接字。我错误地认为,如果我能够在路由器上获取调用者的地址,我就可以传递该信息并将消息发送回初始 REQ。

看来这应该是可能的,我所缺少的也许是一些耦合到路由器的设备?

那么是否有可能实现这一点,并且是否有更好的模式而不需要在调用者处绑定(bind)另一个套接字?

最佳答案

初始调用者REQ期望来自ROUTER的回复,并且不能接受来自其他地方的消息。因此,一个简单的方法是具有三个端点的代理:

  • ROUTER用于与客户端通信
  • PUB 用于向所有工作人员发送消息
  • PULL 用于获取结果

代理内的路由是:

  • 路由器 -> PUB
  • PULL ->aggregate_by_client_id() ->ROUTER

从我的角度来看,棘手的部分隐藏在aggregate_by_client_id()中,这是必要的,因为您只能发送对REQ的答案。您知道 worker 可以期待多少结果吗?

关于ZeroMQ 管道返回初始客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19884328/

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