1

以具有多个服务的联合 graphQL 为例,其中一些服务依赖于其他服务,如下所示:

在此处输入图像描述

网关是使用 Apollo 定义的:

const gateway = new ApolloGateway({
  serviceList: services
});

其中 services 是一系列可用的正在运行的服务。

有一个 kubernetes 管理每个服务的可用性,因此每次服务上升或下降时,kubernetes 都会警告网关,因此它会更新此数组并使用gateway.load()正确的可用服务更新服务器。

问题是当一个服务宕机而其他一些服务依赖于它时,就像上图一样,如果Role宕机,Person也会受到影响。

我想知道是否可以配置网关以更改服务的架构以消除依赖关系。在这种情况下,当Role关闭时,更改Person模式,以便客户端无法再使用此字段(因为它已关闭)。

如果不可能,是否有解决方案?

4

0 回答 0