在为我的基于服务器的应用程序考虑一些架构问题困难时,我觉得我将不得不使用单身人士来实现我的目标。纯粹出于以下原因(证明我的气味):
除此之外,Singletons还提出另一个问题。我的基于服务器的应用程序本质上是一个DLL,其类可以调用多个服务器实例。服务器实例类包含单例管理对象。通常,这将由Windows服务管理,因此服务器:机器比率将是1:1。
所以你可以把它看作(其中 - >是1:1,=>是1:很多):
机器 - > ServiceHost(Windows服务?) - >服务器实例 - >单身人士管理对象
但是,我们希望允许SaaS模型,该模型需要服务主机(无论是Windows服务还是Win32应用程序)才能根据业务需要启动多个服务器。因此,物理机可以运行单个服务器主机,该主机将运行多个服务器实例。
哪个是(其中 - >是1:1,=>是1:很多):
机器 - > ServiceHost(Windows服务?) => 服务器实例 - > 单身人士管理对象
问题是这些单例将在服务器之间共享。哪个不可能发生。服务器实例的单例必须是1:1。
假设我无法摆脱这些单例,我是否可以通过将服务实例类作为单独的进程/内存空间来将这些服务器实例彼此分开?
我只能想象我需要启动多个EXE(并使用WCF来管理),每个服务器实例一个。这显然不是很好。
答案 0 :(得分:2)
针对不同“实例”的不同AppDomain怎么样?