我以前从未接触过微服务架构,有一些重要的东西在我正在阅读的内容中仍然不清楚。
在微服务架构中,服务是单个端点还是具有多个端点的单个模块?
端点是细粒度的还是粒度更高?一开始我认为端点是细粒度的,这就是为什么存在使 API 过于繁琐的风险。
我现在发现文章说在微服务架构中,服务与“限界上下文”相关联。在我看来,有界上下文需要的不仅仅是 API 中的单个端点。
最佳答案
这取决于您希望架构的粒度。从理论上讲,为了获得最大粒度并根据单一职责原则,您应该在每个有界上下文中为每个聚合创建一个微服务。这意味着每个命令都应该有一个端点(我假设每个端点都通过一个 URI 到达,即 https://server/place/order
)。
如果您使用 CQRS 架构,那么对于读取/查询端,您还可以为每个读取模型提供一个微服务;通过这种方式,您可以独立扩展每个读取模型(使用数据库复制或整个微服务实例复制)。
关于domain-driven-design - 微服务和服务粒度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46581254/