【问题标题】:Using zeroMQ for processing multiple tasks asynchronously using workers without blocking使用 zeroMQ 异步处理多个任务,使用workers而不阻塞
【发布时间】:2014-06-12 21:02:44
【问题描述】:

我有一个场景,我有一个服务器,它正在向不同的工作人员发送处理任务。我尝试通过将服务器设置为 DEALER 并将多个工作人员设置为 DEALERS 来在 scala 中使用 ZeroMQ 来连接到服务器。但效率不高。因为这是使用循环调度来发送任务。我想在不阻塞任何线程的情况下对任务进行事件驱动的调度,并且我必须确保将任务发送给那些空闲的工作人员。那么如何使用 ZeroMQ 做到这一点呢?

【问题讨论】:

  • 如答案中所述,这些类型的问题在ZMQ Guide明确处理,在请求-回复模式章节中专门为您处理。任何真正想了解和深入使用 ZMQ 的人都必须阅读该指南。
  • 是的,这些事情已经在指南中进行了解释,但问题是除了循环赛之外,所有解释的场景都是阻塞的
  • 我希望任务在队列中等待,并且哪个工作人员变得空闲,然后如果异步请求任务并在服务器端不轮询请求来获取它
  • 您阅读了什么指南?我链接的那个通过几个适合您的用例的示例。
  • 兄弟您提到的相同指南,是的,他们确实有与我的用例相匹配的示例,但他们使用循环法来安排任务。而其他人则使用阻塞的轮询。

标签: multithreading scala zeromq


【解决方案1】:

您的场景需要的不仅仅是 .connect() 的 ZeroMQ 基本元素,并将它们放入更抽象的通信模式中,既可以满足您的应用程序需求,又可以很好地服务于真实场景的负载平衡和故障恢复方面- 世界使用。

您还需要将 [worker] 客户端的 state> 传播回工作单元的 [调度员]-服务器

对于尝试使用 ZeroMQ 进行编码的前几件事来说,这听起来可能很复杂,但如果您至少跳转到 [Code Connected, Volume 1第 265 页 >][asPdf->]1,如果不是这样一步一步的阅读那里

有史以来最快的学习曲线将是首先在 图 60 重新发布更新和图 62 HA 克隆服务器对 用于可能的高可用性方法,然后返回到 元素详细信息

【讨论】:

  • 有趣的答案:但是您指的是第 265 页和图 62 的什么文件?
  • 在上面引用的 book 中,带有完整的 URL-> 到上面发布的 PDF 重新“打印”(为清楚起见,这里也重复) >>> hintjens.wdfiles.com/local--files/main%3afiles/cc1pe.pdf
  • “文件不存在。”
  • 刚刚检查并下载。它大约是 20MB,因此浏览器可能会感到困惑。试试它的父页面 >>> hintjens.com/blog:30 和“另存为 ...”
  • 在我第三次尝试时,它确实可以正常下载。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-29
  • 2017-09-17
  • 1970-01-01
  • 1970-01-01
  • 2017-07-07
  • 2022-12-21
  • 1970-01-01
相关资源
最近更新 更多