0

首先,我将描述当前状态:
服务器由多个 WCF 服务组成,托管在不同机器上的一个或多个 win 服务中。

  1. 负责从不同设备接收数据的服务。与设备的通信是使用套接字实现的。服务实例模式 - 单例。
  2. 数据代理服务 - 负责持久化数据并按请求共享。实例模式 - 单例。
  3. 配置服务 - 负责更改配置数据库并使用管理控制台(WPF 应用程序,如 SSMS)。处理来自控制台、订阅者管理等的连接。实例模式 - 单例。
  4. 客户端访问服务 - 与上面的客户端管理完全相同,但也会通知客户端新数据,并且充当服务总线的门面。又是单身。
  5. 身份管理服务 - 检查权限并返回结果。辛格尔顿。

所有这些服务都与 NServiceBus 连接,我真的很喜欢它现在的工作方式。

但是:
单例太多。主要是因为要使用服务总线,我必须拥有它的单个实例 afaik。我不知道也许我可以在会话模式下使用 nservice 总线,但不知道如何处理所有这些服务将使用一个队列的问题。

如果我有 300 多个客户怎么办?单身人士可能会变得反应迟钝..

我想请教一些关于这一切的批评者,也许有人可以提出一些建议。

提前致谢。
阿列克谢

4

1 回答 1

4

阿列克谢,

虽然每个进程应该只有一个总线实例,但您可以将该实例放在全局可访问的位置(如 AsyncPages 示例中所示),并在网页和 WCF 服务等非单例对象中使用该实例。

此外,让所有服务都使用一个队列可能并不合适。如果没有更好地了解您的情况,我会为您确定的每项服务提供一个队列的默认建议。

希望有帮助。

于 2009-12-18T21:11:28.557 回答