从NetMQ ZeroMQ了解MajorDomo模式

时间:2019-04-07 23:16:22

标签: zeromq netmq

我试图了解如何最好地在c#中实现MDP示例,以在多客户端-单服务器环境中的Windows服务中使用。

我已经阅读了文档,但以下内容仍不清楚:

  • 是否应该在启动时创建所有Worker实例并让其运行?
  • 工人应该都是不同类型的服务,还是仅仅是同一服务的不同实例?
  • 当包含Broker和Workers时,我可以有一个Windows服务吗?还是最好将它们拆分成自己的服务?

我正在使用的示例代码是从此处https://github.com/NetMQ/Samples

取的MajorDomo模式。

1 个答案:

答案 0 :(得分:1)

  1. 是的,应该独立于请求创建MDP环境中的所有工作程序,因为经纪人不知道如何创建请求
  2. 每个工人都处理给定的“服务”(合同)。显然,每份合同应至少有一名工人。
    • 如果您需要并行处理请求,并且给定的工作人员一次只能做一个工作,那么为该服务增加额外的工作人员就很有意义。通常,如果涉及多台计算机(水平缩放),您将这样做
  3. 您可以使经纪人和工人处于同一流程中。但是,如果只想更新一个工作程序,则同时关闭代理对客户可能很烦。我建议将经纪人作为自己的过程,让工人参与一个或多个其他过程。