我们有以下连接到单个数据库(将其命名为 mainDb)的 Windows 服务,但具有不同的功能:
我的一位团队成员认为创建一个服务是个好主意,它将根据我们配置的功能来满足所有上述目的(在特定环境中可能会禁用一个或多个功能);给出的理由是它将易于部署和维护单个应用程序。
另一方面,我赞成将它们分开以保持代码质量,减少由于维护而导致的停机时间,并在由于运行时故障而受到损害时保持其他功能可用。
需要建议。
需要建议
我认为你关于“分离”事物的说法绝对是正确的,但是有什么建议呢?模块化、组件化的设计原则及其原因、面向服务的架构、微服务……如果说从第一天开始就需要学习架构课程的话,那就是 除了单体之外的一切。
在给定场景中哪种方法更好?
一般来说,为每个不同的任务/职责(用UML术语来说,就是你在组件图中放入的内容)使用不同的组件,然后每个组件对应(至少在你已经呈现的情况下)一个特定的、不同的服务(您在分布图中放入的内容)。
也就是说,在你提出的具体情况下,我只是将 2 和 3 混为一谈,因为除了“目标通道”之外,它们对我来说看起来是一样的,即抽象一点,看起来像“通信/消息传递组件”。至于 1 和 4,在我看来,它们绝对像是满足独立需求的单独组件。
无论如何,请仅将这些视为有根据的猜测,我宁愿希望“方法”是明确的:实际的解决方案很大程度上取决于特定功能需求的细节,然后还取决于技术考虑(例如哪些技术可用)。