【发布时间】:2022-01-21 03:22:32
【问题描述】:
这几天我正在处理不同的架构模式。特别是,我想更好地了解微服务架构。我了解基本结构,但我还没有完全弄清楚软件组件或也称为“模块”代表什么。我知道它们是软件元素,但你能给我一些具体的例子吗?例如,如果我有一个类似 whatsapp 的应用程序,那么我的服务组件之一就是消息传递“功能”。但我不明白的是各个模块的外观。(该功能的结构如何?)
谢谢!
【问题讨论】:
这几天我正在处理不同的架构模式。特别是,我想更好地了解微服务架构。我了解基本结构,但我还没有完全弄清楚软件组件或也称为“模块”代表什么。我知道它们是软件元素,但你能给我一些具体的例子吗?例如,如果我有一个类似 whatsapp 的应用程序,那么我的服务组件之一就是消息传递“功能”。但我不明白的是各个模块的外观。(该功能的结构如何?)
谢谢!
【问题讨论】:
微服务架构是一种面向服务的架构模式,它基于单一职责分解服务。在考虑如何分解它时,我通常遵循 SOLID 的首字母缩略词(S 代表单一责任)。在您的 whatsapp 示例中,消息传递功能可以是具有单一职责的微服务。模块不是服务,它们是可以包含的可重用组件。例如,我想要一个接口模块来描述与消息传递微服务通信的有效负载。这样的模块可能包括消息模式、身份验证协议等。我会在我的微服务中使用该模块,并且我可能会在客户端中使用该模块(或类似模块)。在这方面,它与图书馆没有太大区别。但是,一个好的模块将以我可以将其作为版本依赖项包含在内的方式进行管理。
【讨论】: