从 NetMQ ZeroMQ 理解 MajorDomo 模式
Understanding the MajorDomo Pattern from NetMQ ZeroMQ
我正在尝试了解如何在 多客户端 - 单服务器环境 中的 windows 服务中使用 c# 最好地实现 MDP 示例。
我已经阅读了文档,但我仍然不清楚以下内容:
- 是否应该在启动时创建所有 Worker 实例并留给 运行?
- Worker 应该都是不同类型的服务还是同一服务的不同实例?
- 当包含 Broker 和 Worker 时,我可以拥有一个 windows 服务吗?还是最好将它们拆分成自己的服务?
我使用的示例代码是取自此处的 MajorDomo 模式https://github.com/NetMQ/Samples
- 是的,MDP 环境中的所有 worker 都应该独立于请求创建,因为 broker 不应该知道如何创建它们
- 每个工人处理给定的 "service"(合同)。显然,每个合同都应该至少有一名工人。
- 如果您需要并行处理请求,并且一个给定的工作人员一次只能处理一个,那么为该服务配备额外的工作人员可能是有意义的。如果涉及多台机器,通常你会这样做(水平缩放)
- 您可以让经纪人和工人在同一个进程中。但是,如果您只想更新一个 worker,同时关闭 broker 对客户来说可能会很烦人。我建议让 broker 成为它自己的进程,而 worker 在一个或多个其他进程中。
我正在尝试了解如何在 多客户端 - 单服务器环境 中的 windows 服务中使用 c# 最好地实现 MDP 示例。
我已经阅读了文档,但我仍然不清楚以下内容:
- 是否应该在启动时创建所有 Worker 实例并留给 运行?
- Worker 应该都是不同类型的服务还是同一服务的不同实例?
- 当包含 Broker 和 Worker 时,我可以拥有一个 windows 服务吗?还是最好将它们拆分成自己的服务?
我使用的示例代码是取自此处的 MajorDomo 模式https://github.com/NetMQ/Samples
- 是的,MDP 环境中的所有 worker 都应该独立于请求创建,因为 broker 不应该知道如何创建它们
- 每个工人处理给定的 "service"(合同)。显然,每个合同都应该至少有一名工人。
- 如果您需要并行处理请求,并且一个给定的工作人员一次只能处理一个,那么为该服务配备额外的工作人员可能是有意义的。如果涉及多台机器,通常你会这样做(水平缩放)
- 您可以让经纪人和工人在同一个进程中。但是,如果您只想更新一个 worker,同时关闭 broker 对客户来说可能会很烦人。我建议让 broker 成为它自己的进程,而 worker 在一个或多个其他进程中。