2. 与 Apollo GraphOS 联合
5m

概述

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

在本课中,我们将

  • 概述从头到尾 的整体制作流程。

托管联合

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

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

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

是 GraphOS 的主要 Web 界面。我们可以使用 Studio 创建我们的 ,查看模式和指标,并在 Explorer 中测试 。如果您在我们这里在 上构建了 ,那么您可能以前使用过 Studio,或者它的免费精简版:Sandbox。

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 Apollo Studio where the subgraphs can be registered

步骤 3:发布子图模式

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

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

步骤 4:组合超级图模式

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

首先, 将开始 构建 The 。它尝试将来自其注册的 的所有模式组合成一个超级图模式。这个过程也被称为 组合。非常酷!

Step 4: Composing the supergraph schema

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

If composition fails, the schema registry displays an error in Apollo 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 中的版本与它正在使用的版本相同。在这种情况下,不会发生任何变化。

但如果发现 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 论坛中发布。