GraphQL Schema Registry:企业级GraphQL架构的利器

GraphQL Schema Registry:企业级GraphQL架构的利器

graphql-schema-registryGraphQL schema registry项目地址:https://gitcode.com/gh_mirrors/gr/graphql-schema-registry

项目介绍

graphql-schema-registry 是一个专为GraphQL联邦网关设计的企业级Schema存储服务。它提供了一个Docker化的本地解决方案,旨在替代Apollo Studio和The Guild's Hive等云服务。通过该开源项目,开发者可以轻松管理GraphQL服务的Schema版本,确保Schema的兼容性,并提供直观的UI界面来查看和管理Schema的历史记录。

项目技术分析

技术栈

  • 前端:React、Apollo Client、Styled-components
  • 后端:Node.js 16、Express、Hapi/Joi、Apollo-server-express、Dataloader、Redis 6、Knex、MySQL 8

架构设计

graphql-schema-registry 的核心架构包括以下组件:

  • Federated Gateway:基于Apollo Server的联邦网关,负责定期从Schema Registry拉取Schema。
  • Schema Registry:核心服务,负责存储和管理GraphQL服务的Schema。
  • MySQL:主要的数据存储,用于存储Schema和其他衍生数据。
  • Redis:缓存层,用于存储自动持久化查询(APQs)。
  • Kafka:异步消息系统,用于快速更新Schema和进行使用情况跟踪。
  • Query Analyzer:可选组件,用于异步处理查询,进行使用情况跟踪。

项目及技术应用场景

graphql-schema-registry 适用于以下场景:

  • 企业级GraphQL架构:适用于需要高度定制和控制的企业级GraphQL架构,特别是在需要本地化部署和管理的场景中。
  • Schema版本管理:适用于需要严格管理GraphQL Schema版本的项目,确保不同服务之间的Schema兼容性。
  • 联邦网关管理:适用于使用Apollo Server作为联邦网关的项目,提供更灵活的Schema管理和更新机制。

项目特点

  • 版本化Schema存储:支持存储GraphQL服务的版本化Schema,确保Schema的可追溯性和版本控制。
  • 超级图Schema服务:根据提供的服务及其版本,动态生成并服务于联邦网关的超级图Schema。
  • Schema兼容性验证:在Schema更新时,自动验证新Schema与现有服务的兼容性,避免潜在的破坏性更改。
  • 直观的UI界面:提供用户友好的UI界面,方便开发者查看和管理Schema及其历史记录。
  • 服务URL存储:存储服务URL,模拟托管联邦,无需在网关中硬编码服务URL或依赖额外的服务发现机制。
  • 异步Schema使用分析:通过异步分析Schema的使用情况,最小化生产环境中出现的破坏性更改。
  • 快速Schema更新:通过发布Schema注册事件,最小化超级图的更新时间。
  • 自动持久化查询管理:存储并展示自动持久化查询,提高查询的可见性和管理效率。

总结

graphql-schema-registry 是一个功能强大且灵活的GraphQL Schema管理工具,特别适合需要高度定制和控制的企业级GraphQL架构。通过其丰富的功能和直观的UI界面,开发者可以轻松管理GraphQL服务的Schema,确保系统的稳定性和可维护性。无论是Schema版本管理、兼容性验证,还是服务URL的动态管理,graphql-schema-registry 都能提供一站式的解决方案。

graphql-schema-registryGraphQL schema registry项目地址:https://gitcode.com/gh_mirrors/gr/graphql-schema-registry

你可能感兴趣的:(GraphQL Schema Registry:企业级GraphQL架构的利器)