猿问

如何为微服务创建 Graphql 服务器?

我们在 Golang 和 Python 上有几个微服务,在 Golang 上我们正在编写财务操作,在 Python 在线商店逻辑上,我们想为我们的前端创建一个 API,但我们不知道如何去做。我已经阅读了 API 网关,如果 Golang 创建自己的 GraphQL 服务器,Python 将创建另一个,它们都将与第三个 graphql 服务器通信,该服务器将为前端生成 API。



SMILET
浏览 85回答 1
1回答

慕标琳琳

我对你们的服务了解不多,但我在不同项目中成功使用的模式就像你提到的那样GraphQL gateway。您将创建一个服务,我更喜欢在 Node.js 中创建它,来自前端的所有请求都将通过。然后GraphQL gateway你会请求你的微服务。这基本上是您进入后端系统的唯一入口点。请求将经过身份验证,您可以统一对数据的访问并执行一些性能优化,例如实施数据加载器的缓存和批处理以缓解 N+1 问题。此外,您将降低拥有多个 API 的复杂性并利用 GraphQL 的所有优势。在我的上一个项目中,我们有 7 个不同的前端,每个都使用相同的前端GraphQL gateway,我对我们的方法非常满意。肯定有一些缺点,因为您需要保持同步所有前端和GraphQL gateway,因此您需要更多地了解您的重大更改,但它可以通过例如deprecated指令并通过使用 Kubernetes 集群执行蓝/绿部署来解决。另一种选择是在 GraphQL 中为前端创建所谓的后端。目前,我没有足够的信息了解哪种解决方案最适合您。您需要根据您的前端需求和业务领域来决定,但通常我更喜欢 GraphQL 网关,因为 GraphQL 具有很大的灵活性,并且 GraphQL 功能涵盖了将 API 定制到前端的需求。
随时随地看视频慕课网APP

相关分类

Go
我要回答