gpt4 book ai didi

.net - 多个服务或具有多个线程的单个服务

转载 作者:行者123 更新时间:2023-12-02 17:28:25 25 4
gpt4 key购买 nike

我们正在重写我们的 .net 应用程序。当前应用程序有 4 个 Windows 服务。第一个服务接受来自 UI 的请求,并通过发布刷新 UI 的事件来更新 UI。该服务在内部使用 2 个 thrall 池,每个池最多 16 个线程来为 GUI 提供服务。来自 UI 的任何需要业务处理的请求都会传递给工作进程窗口服务(有 2 个这样的窗口服务)。MSMQ 用于在服务之间来回传递请求。第四个窗口服务充当负载平衡,并将来自第一个服务的请求定向到工作人员。所有服务都在同一个盒子上运行

现在在重写时,我们想知道我们是否应该保持相同的架构,或者是否可以将其全部合并到具有单独线程的相同服务中。从性能角度来看哪个更好。

最佳答案

目前您是在同一个盒子上运行它,但您认为将来可能需要扩展到多个盒子吗?

涉及多个服务的架构更具可扩展性、可维护性和灵 active 。您获得的一些主要好处是,

  • 你的架构更松耦合
  • 您可以单独扩展每个服务/工作负载
  • 您可以用不同的技术替换每项服务(也许有一天你想使用C++ on Linux),你可以灵活地做到这一点
  • 向您的系统添加新功能更容易,例如,如果您想要添加额外的日志记录,您可以挂接到 MSMQ 并启动在不触及您的实际代码的情况下记录您的消息

由于延迟减少,多线程可能会给您带来一些性能提升,但如果您在同一台机器上运行两个系统,则不会有太大差异。但是如果你因为高负载而遇到麻烦,而你只想扩展你的业务逻辑服务;那你就倒霉了。因此,我总是会选择提供关注点分离和其他好处的多服务(一种微服务架构)。

希望对您有所帮助。

关于.net - 多个服务或具有多个线程的单个服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36710156/

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