我希望优化在graphql-java
和graphql-java-tools
上运行的GraphQL端点。
我有以下架构:
{
product(id: String) {
id
title
offer {
price
}
}
}
id
和title
来自服务A,价格来自服务B.
现在,我有一个GraphQLQueryResolver
返回CompletableFuture<ProductResponse>
,其中ProductResponse
包含id
和title
,我有另一个GraphQLResolver<ProductResponse>
使用方法offer(ProductResponse productResponse)
返回CompletableFuture<OfferResponse>
。
但是,这意味着我必须等待服务A返回ProductResponse
才能开始向服务B查询OfferResponse
。两种服务只需要ID作为输入,因此可以并行执行。
有没有办法在不调整架构的情况下并行执行两个服务调用?
答案 0 :(得分:-2)
我认为您可以考虑使用Apollo联合身份验证,该联盟以一种通用的方式但仍然以一种优雅的方式解决了该问题。