gpt4 book ai didi

c# - 缩放单例

转载 作者:行者123 更新时间:2023-11-30 17:23:41 27 4
gpt4 key购买 nike

在为我的基于服务器的应用程序考虑了一些架构问题之后,我觉得我将不得不使用单例来实现我的目标。纯粹出于以下原因(证明我的气味是正确的):

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

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

因此您可以将其视为(其中 -> 是 1:1,=> 是 1:many):

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

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

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

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

问题是这些单例会跨服务器共享。这不可能发生。单例必须与服务器实例 1:1。

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

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

最佳答案

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

关于c# - 缩放单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2027263/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com