首页 > 解决方案 > 微服务“加入”

问题描述

假设我们要创建带有微服务的应用程序。

我们有一些页面显示一些项目(产品)。

这些产品有多个连接(类别、标签、用户等)。

如果用户、类别数据在另一个服务中,我们如何管理和过滤结果?

例如,在 SQL 中,您创建 3,4 个连接并获取。

使用微服务——我必须过滤类别,然后过滤标签和产品——这可能比 SQL 查询的速度慢 10 倍。

另外,如果我有表“products_categories”,它为每个产品设置类别,哪个服务负责?产品服务还是品类服务?

谢谢

标签: microservices

解决方案


在微服务架构中,有两种方法来处理它。

  1. API 组合模式——这是最简单的方法,应尽可能使用。它的工作原理是让拥有数据的服务客户负责调用服务并组合结果。

  2. 命令查询职责分离 (CQRS) 模式——这比 API 组合模式更强大,但也更复杂。它维护一个或多个视图数据库,其唯一目的是支持查询。

我更喜欢使用 CQRS,定义一个视图数据库,它是一个只读副本,专门支持该查询。其余服务通过订阅(创建、更新、插入)数据所有者服务发布的事件来保持副本保持最新。


推荐阅读