【发布时间】:2018-07-25 02:09:14
【问题描述】:
我有一个微服务,它公开了一些 gRPC 功能。每个 gRPC 函数只是从表中获取数据作为单个记录(使用 id 参数)或所有记录。客户端是一个后端数据管理系统,它需要构建一个需要来自多个服务功能的数据的报表。
现在在使用微服务时,一个明显的想法是客户端应该进行多次服务调用,并根据需要在其末端组合数据。
优点 - 客户端和微服务将相互独立
缺点 - 多个 gRPC 调用(考虑每条记录 5 个 * 30 条记录)
但不知何故,这感觉不对劲(可能是它的单体架构思想),为了显示 30 条记录,我们必须进行 150 次 gRPC 调用。因此,替代方案可能是创建一个新的 gRPC 函数,该函数将服务本身的所有数据组合在一起。
优点 - 只有 1 个 gRPC 调用
缺点 - 客户端和微服务相互依赖,这违背了微服务的目的。
我更倾向于第一种方法,但想确认其他人对这种情况的看法。
【问题讨论】:
标签: architecture microservices