繁体   English   中英

缩放单身人士

[英]Scaling singletons

在为基于服务器的应用程序考虑一些架构问题困难时,我觉得我将不得不使用单身人士来实现我的目标。 纯粹出于以下原因(证明我的气味):

  • 我不需要将昂贵的对象深入到调用堆栈中
  • 我可以在任何上下文中对单例管理对象执行函数。 (很多代码已经存在,因此我不愿意重写其他工作代码的大量代码)

除此之外,Singletons提出了另一个问题。 我的基于服务器的应用程序本质上是一个DLL,其类可以调用多个服务器实例。 服务器实例类包含单例管理对象。 通常,这将由Windows服务管理,因此服务器:机器比率将是1:1。

所以你可以将其视为(其中 - >是1:1,=>是1:很多):

MACHINE - > ServiceHost(Windows服务?) - >服务器实例 - >单例管理对象

但是,我们希望允许SaaS模型,该模型需要服务主机(无论是Windows服务还是Win32应用程序)才能根据业务需要启动多个服务器。 因此,物理机可以运行单个服务器主机,该主机将运行多个服务器实例。

这将是(其中 - >是1:1,=>是1:很多):

MACHINE - > ServiceHost(Windows服务?) =>服务器实例 - > 单例管理对象

问题是这些单例将在服务器之间共享。 哪个不可能发生。 单例与服务器实例必须为1:1。

假设我无法摆脱这些单例,我是否可以通过将服务实例类作为单独的进程/内存空间来将这些服务器实例彼此分开?

我只能想象我需要启动多个EXE(并使用WCF来管理),每个服务器实例一个。 这显然不是很好。

对于不同的“实例”,不同的AppDomain怎么样?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM