我有一个使用python和zeromq的工作应用程序,我想对其进行优化。使用python和zeromq分发任务
简而言之,主节点发送相同的请求给所有的工人(约200),然后收集答案。根据答案,它将消息发送回一个节点,节点回应。
现在我实现了一个非常简单的模式。每个工作人员有一个REP套接字,服务器有一个REQ套接字列表。服务器遍历所有发送一般消息的套接字,然后迭代所有套接字以收集答案。最后,服务器根据答案选择一个工作人员,向其发送消息并等待答复。
这当然很慢。最慢的部分发送200次相同的消息。收集也很慢。我发现分发任务和收集答案的解决方案确实实现了负载均衡,这不是我所需要的。我需要每个工作人员收到信息并作出回应。
这种情况推荐的模式是什么?
谢谢
你是什么意思“这种情况推荐的模式是什么?” – Marcin 2012-03-24 15:07:05
例如,如果您必须处理独立任务,则可以使用呼吸机模式来分配此处所述的任务http://taotetek.wordpress.com/2011/02/02/python-multiprocessing-with-zeromq/ – Hernan 2012-03-24 15:41:44
我知道一个模式是什么。你还没有真正解释你在做什么,你当前解决方案的哪些部分是必需的,甚至没有解释为什么分发你的消息很慢。 “分发东西速度慢”的经典解决方案是不分发东西,或者做得更少。 – Marcin 2012-03-24 16:00:12