以具有多个服务的联合 graphQL 为例,其中一些服务依赖于其他服务,如下所示:
网关是使用 Apollo 定义的:
const gateway = new ApolloGateway({
serviceList: services
});
其中 services 是一系列可用的正在运行的服务。
有一个 kubernetes 管理每个服务的可用性,因此每次服务上升或下降时,kubernetes 都会警告网关,因此它会更新此数组并使用gateway.load()
正确的可用服务更新服务器。
问题是当一个服务宕机而其他一些服务依赖于它时,就像上图一样,如果Role宕机,Person也会受到影响。
我想知道是否可以配置网关以更改服务的架构以消除依赖关系。在这种情况下,当Role关闭时,更改Person模式,以便客户端无法再使用此字段(因为它已关闭)。
如果不可能,是否有解决方案?