gpt4 book ai didi

graphql - 使用 GraphQL 进行微服务互通有意义吗?

转载 作者:行者123 更新时间:2023-12-03 14:25:24 25 4
gpt4 key购买 nike

我已经阅读了很多关于使用 GraphQL 作为微服务前端的 API 网关的内容。
但我想知道 GraphQL 相对于 Rest 的所有优势是否也与微服务之间的通信无关。
任何输入、优点/缺点和成功的使用示例将不胜感激。

最佳答案

需要考虑的要点 r:

  • GraphQL 不是 Elixir ,也不比 REST“更好”。只是不同而已。
  • 您绝对可以同时使用两者,因此不是非此即彼。
  • 根据特定用途,GraphQL(或 REST)可以是从伟大到可怕的任何地方。
  • GraphQL 和 REST 不是完全替代品:
  • GraphQL 是一种查询语言、规范和工具集合,旨在通过 HTTP 在单个端点上运行,从而优化性能和灵 active 。
  • REST 是一种架构风格/方法,用于利用其存在的协议(protocol)的统一接口(interface)进行一般通信。

  • 避免在微服务之间共同使用 GraphQL 的一些原因 :
  • 当客户端需要灵活的响应时,GraphQL 主要是有用的,它可以控制而不更改服务器的代码。
  • 当您授予客户端服务对传入数据的控制权时,可能会导致暴露太多数据,从而损害服务服务的封装。这是对系统可维护性和更改能力的长期风险。
  • 在微服务之间,延迟问题远不如客户端-服务器之间的问题,聚合功能也是如此。
  • 当您有许多服务时,统一界面非常有用 - 但 graphQL 可能会适得其反。
  • QueryQL 定义的灵活查询在性能优化方面可能更具挑战性。
  • 一次更新对象的层次结构(graphQL 自然结构)可能会增加原子性、幂等性、错误报告等方面的复杂性。

  • 回顾 :
  • GraphQL 非常适合服务器到服务器的通信,但很可能它非常适合一小部分用例。
  • 您是否有服务之间的 API 网关用例?也许这是你应该问自己的问题。 GraphQL 只是一个(流行的)工具。
  • 像往常一样,最好将问题与工具相匹配。
  • 关于graphql - 使用 GraphQL 进行微服务互通有意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52736868/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com