繁体   English   中英

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

[英]How to create Graphql server for microservices?

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

我不太了解你的服务的很多细节,但我在不同项目中成功使用的伟大模式就是你提到的GraphQL gateway

您将创建一个服务,我更喜欢在 Node.js 中创建它,其中来自前端的所有请求都将通过。 然后从GraphQL gateway您将请求您的微服务。 这基本上是您进入后端系统的唯一入口点。 请求将通过身份验证,您可以统一访问数据并执行一些性能优化,例如实现数据加载器的缓存和批处理以缓解 N+1 问题。 此外,您将降低拥有多个 API 的复杂性并利用 GraphQL 的所有优势。 在我的上一个项目中,我们有 7 个不同的前端,每个前端都使用相同的GraphQL gateway ,我对我们的方法非常满意。 肯定有一些缺点,因为您需要使所有前端和GraphQL gateway保持同步,因此您需要更加了解您的重大更改,但它可以通过例如deprecated指令和使用 Kubernetes 集群执行蓝/绿部署来解决.

另一种选择是在 GraphQL 中为前端创建所谓的后端。 现在我没有足够的信息哪种解决方案最适合您。 您需要根据您的前端需求和业务领域做出决定,但通常我更喜欢 GraphQL 网关,因为 GraphQL 具有很大的灵活性,并且 GraphQL 功能涵盖了将 API 调整到前端的需求。 希望对大卫有帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM