我们正在重写我们的.net应用程序。目前的应用程序有4个Windows服务。第一个服务接受来自UI的请求,并通过发布用于刷新UI的事件来更新UI。此服务在内部使用2个thrall池,每个池最多16个线程来为GUI提供服务。来自UI的任何需要业务处理的请求被传递给工作进程windows服务(有2个这样的Windows服务).MSMQ用于在服务之间来回传递请求。第四个Windows服务就像负载平衡一样,将来自第一个服务的请求定向到工作者。所有服务都在同一个盒子上运行
现在在重写时,我们想知道我们是否应该维护相同的架构,或者是否可以使用单独的线程将它们分成相同的服务。从绩效角度来看哪个更好。
答案 0 :(得分:4)
现在你在同一个盒子上运行它,但是你认为将来可能需要扩展到多个盒子吗?
涉及多种服务的架构更具可扩展性,更易于维护和更灵活。您获得的一些主要好处是,
多线程可以减少延迟,从而为您带来一些性能提升,但如果您在同一台计算机上运行这两个系统,则不会有太大差异。但是,如果您因高负载而遇到麻烦,并且只想扩展业务逻辑服务;那你就不走运了。因此,我总是采用多服务(一种微服务架构)来分离关注点和其他好处。
我希望这会有所帮助。