10月8日至10日加入我们,在纽约市学习关于GraphQL联盟和API平台工程的最新技巧、趋势和新闻。加入2024年纽约市的GraphQL峰会
文档
免费开始

The Apollo GraphOS 平台

使用 GraphQL 统一您的基础设施


是构建、管理和扩展 supergraph 的平台,这是一个统一的网络,包括您的组织的服务及其 ,全部组成一个单一的分布式 API。

通过向 's 路由器 发出一个 ,应用程序客户端可以检索 services 的任何组合数据:

Your infrastructure
GraphOS
Sub-query
Sub-query
Query
Users
API
Products
API
Graph
Router
Clients

客户端 query supergraph,使用一种叫做 GraphQL 的强大语言,它们可以检索所需的确切数据,而无需过度检索。即使您的超图架构不公开暴露,客户端也可以向单个端点(您的 )发送查询,无论他们需要什么数据。

超级图不是您现有基础设施的替代品。相反,它是一种连接您现有基础设施的方法,使它对与您的数据交互的每个人更加易于访问和实用。

GraphOS 有什么?

GraphOS 平台提供了一个不断增长的工具和服务集合,帮助您构建超级图,并安全地将其与您的组织一起扩展。

以下特征是 GraphOS 的核心:

  • 云路由
  • 模式注册表
    • GraphOS追踪您所有API的模式,并还处理将那些模式组合成一个用于您的路由器
  • 针对每种用例的界面
    • 如果您想在Studio或Rover之外自动化自己的工作流程,您可以使用官方的GraphOS平台API来实现。我们将逐步通过平台API开放更多GraphOS功能。

要了解更多关于这些和更多GraphOS功能的信息,请参阅完整的GraphOS文档

超图中有什么?

如果GraphOS是构建和管理超图的平台,那么了解超图的内容是很重要的。

每个超图都使用一个名为Apollo Federation的开源架构,它包括以下部分:

Your infrastructure
GraphOS
GraphQL API
A
GraphQL API
B
Graph
Router
Clients

  • 路由器
    • 路由器作为超级图的客户端可访问的入口点。它接收所有传入的查询。
    • 正如其名称所示,路由器将每个传入的查询路由到适当的子图组合(见下一项)。它也有责任将多个子图响应组合成单个响应供客户端使用。
    • GraphOS可以为您处理和托管超级图的路由器's
  • 一个或多个
    • 您的GraphQLAPI每个都为您的超级图的可用数据提供子集,所以我们称它们为子图客户端不会直接查询您的子图——只有路由器才会。
    • 通常,您的每个现有微服务都作为不同的子图's
  • 后台数据源(数据库、REST API等)
    • 您的子图使用这些数据来为传入的查询填充数据。

上面的图表显示了一个包含、两个子图和两个相应的数据源的基本超图

以下视频提供了一个有助于理解Apollo Federation架构如何帮助组织根据数据扩展的有益可视化:

为什么采用超图?

采用超图可以显著提高每个(无论是内部还是外部)与您组织数据互动的团队的开发者体验。这些改进使开发者能够更快地发布产品和功能,同时对它们的可靠性和性能更有信心。

我该如何实施超图?

实现一个超图,你需要设置其各个组成部分:图路由和你的子图。Apollo为每个部分提供了库和工具。更重要的是,我们提供了教程来帮助你。

教程

路由器的实现

如果你创建了一个GraphOS云超图,Apollo将为你提供和托管你的超图路由器。

对于需要在自己的基础设施中运行路由器的企业组织,Apollo提供了两个可以作为路由器使用的库:

  • GraphOS路由器(强烈推荐)
    • GraphOS路由器由Apollo Router Core提供支持——一个由Rust编写的超高性能二进制文件,即使在极高流量下也能为请求处理增加极小的延迟。查看更多,甚至在高流量下也能实现最小的延迟。
    • 由于Apollo Router Core作为一个预编译的二进制文件发布,你不需要编写任何样板代码就可以将其部署到后端。它只需要一个配置文件来自定义任何行为。
    • 云端超图路由器在内部使用GraphOS路由器
  • Apollo Server@apollo/gateway
    • 这是Apollo的开源Node.js 库,您可以根据需要进行配置,使其作为supergraph网关运行。

如果您开始使用这些库之一,后来决定切换到另一个,您可以在不修改supergraph其他部分的情况下进行切换。

实现子图

每个subgraph本身就是一个GraphQL API。因此,它使用GraphQL服务器库来处理路由器转发的查询。

要作为subgraph运行,GraphQL服务器库需要支持Apollon Federation的subgraph规范。幸运的是,许多流行的库都支持。请查看Federation兼容的subgraph实现

您可以根据您组织的需要对任何服务器库进行选择。不同的subgraph甚至可以使用完全不同的库,这对于您的各个微服务使用不同语言的情况非常有帮助。

客户端如何查询我的supergraph?

对于客户端应用程序,您的supergraph与其他GraphQL API看起来相同。因此,它们使用相同的客户端库进行查询。

Apollo为以下平台提供了GraphQL客户端库:

这些都是可定制、开源的库,具有强大的缓存和状态管理功能。客户端缓存允许应用本地复制它关心的部分supergraph。应用可以自行查询数据,如果数据已存在,则通过消除重复的网络请求显著提高性能。

从哪里开始?

我们有许多有用的资源可以帮助您开始您的supergraph之旅:

需要更多指导吗?在我们的社区论坛发帖,我们会帮您指明正确的方向。

上一页
首页
下一页
为什么要采用GraphQL?
评价文章评价Edit on GitHubEdit论坛加入Discord服务器

©2024Apollo Graph Inc.,商号为Apollo GraphQL。

隐私政策

公司