服务器架构问题。 (WCF + NServiceBus)

时间:2009-12-18 16:16:09

标签: wcf architecture soa n-tier-architecture nservicebus

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

  1. 负责接收来自不同设备的数据的服务。与设备的通信使用套接字实现。服务实例模式 - 单例。
  2. 数据代理服务 - 负责持久保存数据并按请求共享。实例模式 - 单例。
  3. 配置服务 - 负责更改配置数据库和使用管理控制台(WPF应用程序,如SSMS)。处理来自控制台,用户管理等的连接。实例模式 - 单例。
  4. 客户端访问服务 - 与上述客户端管理完全相同,但也向客户端通知新数据,并且就像服务总线的外观一样。再次单身。
  5. 身份管理服务 - 检查权限并返回结果。辛格尔顿。
  6. 所有这些服务都与NServiceBus相关联,我真的很喜欢它的工作方式。

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

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

    我想问一些关于所有这些的批评者,也许有人可能会提出一些建议。

    提前致谢。
    阿列克谢

1 个答案:

答案 0 :(得分:4)

阿列克谢,

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

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

希望有所帮助。