2. 与 Apollo GraphOS 联合
5m

概述

现在我们已经熟悉了联合架构,让我们深入了解帮助我们构建和管理它的开发平台。.

在本课中,我们将

  • 概述从头到尾创建 的整个流程。

托管联合

托管联合是一种维护 的方法。使用 ,我们超级图的更新由 处理。

GraphOS 是帮助我们构建、管理和扩展 的开发平台。 跟踪和组合注册表中的 ,提供可观察性指标,确保安全的 等等。

要与 交互,我们使用 GraphOS StudioRover CLI

是 GraphOS 的主要 Web 界面。我们可以使用 Studio 创建我们的 ,查看模式和指标,并在资源管理器中测试 。如果您使用我们在此处的 构建了 ,那么您很可能已经使用过 Studio,或者其免费的精简版本:沙盒。

The 的主要命令行界面。我们可以使用 Rover 发布 ,从 CI 运行 ,并在开发环境中测试我们的 。我们将在本课程后面的部分看到这些的实际应用!

我们将使用 Studio 和 ,利用 使我们的 栩栩如生!

托管联合工作流程

在高层次上, 工作流程如下所示:

  1. 后端开发人员设计并构建他们的
  2. 某人将在 中创建一个新的
  3. 后端开发人员将他们的 发布到模式注册表。
  4. 模式注册表会自动将 组合到 超级图模式 中,并通过 Apollo Uplink 提供访问。
  5. The 会自动定期轮询 Uplink,查看是否有 的新版本。

让我们更详细地了解这些步骤中的每一个。

步骤 1:团队构建他们的子图

后端团队独立构建他们的 ,可以使用他们喜欢的任何语言和框架。

An illustration showing the first step of the process: backend teams can independently build out their subgraph servers, complete with schemas, resolvers, and data sources.

步骤 2:在 GraphOS Studio 中创建一个新的超级图

接下来,有人需要在 Studio 中创建一个新的 。只需要一个人执行此步骤。

Step 2: create a new deployed graph in GraphOS Studio where the subgraphs can be registered

步骤 3:发布子图模式

当我们对我们的 感到满意时,我们将使用 将每个子图的模式发布到模式注册表。模式注册表是一个 Apollo 托管的版本控制系统,它使我们能够跟踪模式随时间的变化,例如添加、修改和删除了哪些类型和 。注册表为 中的几乎所有功能提供支持。

Step 3: publish each subgraph's schema to the Apollo schema registry

步骤 4:组合超级图模式

当模式注册表收到 的新版本或更新版本时,它会触发一个 。一个 启动 代表对 进行模式更新的整个过程。

首先, 将开始 构建 。它尝试将来自其已注册 的所有模式组合成一个超级图模式。此过程也称为 组合。太棒了!

Step 4: Composing the supergraph schema

如果 失败,模式注册表会在 Studio 中显示错误,该过程会在启动失败时停止。别担心:我们可以使用错误消息来修复 中的问题,然后尝试使用 再次发布子图。

If composition fails, the schema registry displays an error in GraphOS Studio

如果 成功且没有验证错误,模式注册表会生成 超级图模式

模式注册表会自动将 发送到 Studio 中名为 Apollo Uplink 的内部服务。Uplink 是一台服务器,存储每个图的最新超级图模式。

The schema registry automatically sends the supergraph schema to an internal service within Studio called Apollo Uplink

步骤 5:路由器轮询 Uplink 以获取最新的超级图模式

接下来,我们需要 连接到步骤 2 中 Studio 创建的

The 会自动定期轮询 Uplink,查看是否有 的新版本。

大多数情况下, 会发现存储在 Uplink 中的 与它正在使用的版本相同。在这种情况下,不会发生任何更改。

但是,如果 发现上行链路包含 版本的 会自动更新以使用新版本 - 无需重启服务器,也无需停机! 将成功完成。

Step 5: The router polls Uplink for the latest supergraph schema

现在,任何与 通信的客户端将能够引用并 更新后的模式。

以下是使用 的完整 工作流程:

The full managed federation workflow

有了我们的 API 的“真实来源”,即 ,它存在于 中,我们将能够访问一些很棒的功能,例如 、可观察性指标、安全的 等等。

练习

以下哪些是超级图架构中路由器的职责?
以下哪些是超级图架构中子图的职责?
子图服务器应该托管在哪里?
托管式联合流程
每个超级图都包含一个或多个 
 
, 每个子图都有自己的模式。通过 
 
, 这些模式中的每一个都发布到 Apollo 模式注册表中。每当子图模式被发布时,模式注册表都会触发一个称为 
 
的过程。如果成功,此过程将生成一个 
 
, 然后由超级图的 
 
 通过定期轮询获取。

将这些框中的项目拖动到上面的空格中

  • 托管式联合

  • 路由器

  • 构建

  • 超级图模式

  • 子图

  • 版本控制

  • 数据源

  • 组合

  • 解析器

关键要点

  • 客户端向 发送 。路由器接收此请求,找出哪些 负责解析它,并将操作发送到相应的子图。子图解析数据并将其返回给路由器,路由器将其捆绑起来并返回给客户端。
  • 创建或更新 后,开发人员可以使用 Rover CLI 发布到 Apollo 模式注册表。
  • 组合,形成了一个 使用它来解析传入的客户端请求。
  • 使用 ,对 的模式更新由 管理,并且不会导致停机。

接下来

现在该组合 了。

上一页

分享您关于本课程的疑问和意见

本课程目前处于

测试版
.您的反馈对我们至关重要!如果您遇到困难或感到困惑,请告知我们,我们将为您提供帮助。所有评论都是公开的,必须遵守 Apollo 行为准则。请注意,已解决或处理的评论可能会被删除。

您需要一个 GitHub 帐户才能在下方发布评论。没有帐户? 请改为在我们的 Odyssey 论坛中发布评论。