我有一个使用 Python 和 ZeroMQ 的工作应用程序,我希望对其进行优化。
简而言之,一个主节点向所有工作节点(约 200 个)发送相同的请求,然后收集答案。基于答案,它向一个节点发送消息,该节点回复答案。
目前,我实现了一个非常简单的模式。每个工作进程都有一个 REP 套接字,服务器有一个 REQ 套接字列表。服务器通过所有套接字进行迭代,发送通用消息,然后通过所有套接字进行迭代以收集答案。最后,基于答案,服务器选择一个进程,向其发送消息并等待回复。
当然,这样做速度相当慢。最慢的部分是发送相同的消息 200 次。收集也很慢。我找到的解决方案可以负载均衡来分配任务和收集答案,但这不是我需要的。我需要每个工作进程都接收消息并响应。
在这种情况下,什么是推荐的模式?
谢谢
简而言之,一个主节点向所有工作节点(约 200 个)发送相同的请求,然后收集答案。基于答案,它向一个节点发送消息,该节点回复答案。
目前,我实现了一个非常简单的模式。每个工作进程都有一个 REP 套接字,服务器有一个 REQ 套接字列表。服务器通过所有套接字进行迭代,发送通用消息,然后通过所有套接字进行迭代以收集答案。最后,基于答案,服务器选择一个进程,向其发送消息并等待回复。
当然,这样做速度相当慢。最慢的部分是发送相同的消息 200 次。收集也很慢。我找到的解决方案可以负载均衡来分配任务和收集答案,但这不是我需要的。我需要每个工作进程都接收消息并响应。
在这种情况下,什么是推荐的模式?
谢谢