微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将 REST API 迁移到 GraphQL Apollo Federation

如何解决如何将 REST API 迁移到 GraphQL Apollo Federation

计划使用 Apollo Federation 将我的 PHP API 迁移到 Graphql。经过一番研究,我看到它是使用以下方式完成的:

enter image description here

我的问题是:

  1. 是否有更好的方法来创建联合服务,使其不是一个单独的层(每个 REST API 1 个)?也许类似于之前的模式拼接方法,所有模式都可以放在一个地方并在最后拼接在一起(而不是每个服务的特定联合层)。

  2. 如果这是推荐的方式,我该如何部署此基础架构?从图中,这是否意味着我有 5 个实例在运行以覆盖所有服务?

  3. 是否建议在一个实例中运行所有网关和联合服务(从图表中 - 一个实例中运行 3 个服务器)?

解决方法

如果有帮助,请告诉我。

  1. 如果您想打破 apollo 服务器的非联合实现的单一结构,联合服务非常有用。它可以通过结合微服务最佳实践来设计。不是盲目地为每个休息端点拥有一个联合服务,您可以根据服务应该注意的功能来拥有联合服务。一项服务可以调用多个休息端点。这将使您更好地控制基础架构级别的扩展、保护和管理服务。一个例子可以像亚马逊一样简单,其中商品浏览点击量不仅仅是购买交易。在这种情况下,您可以拥有一个提供浏览数据的联合服务,而另一个可以用于管理事务。然后,您可以将一个实例扩展到多个实例来处理用户负载,并为一个 hadling 事务设置额外的安全性。

2 & 3. 是的,您需要单独部署所有组件。我建议将所有服务都放在同一个 VPC 集群中,这样您就不必担心网络层安全性。如果服务跨多个集群部署,它会为每个请求添加处理防火墙和 https/tls,这将导致由于网络调用而导致不必要的延迟。虽然它会以毫秒为单位,但可以轻松避免。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。