GraphGate 是一个用 Rust 语言实现的 Apollo Federation 网关。
一个由3个服务(accounts, products, reviews)组成的完整GraphQL API。
docker run -p 8000:8000 scott829/graphgate-standalone-demo:latest
{
topProducts {
upc name price reviews {
body
author {
id
username
}
}
}
}
subscription {
users {
id username reviews {
body
}
}
}
在微服务架构中数据可能位于不同的位置,把多个服务提供的 API 合并到一起是一件有挑战的事情。
为了解决这个问题,你可以使用 Federation 将API的实现划分为多个可组合服务:
与其他分布式 GraphQL 结构(例如模式缝合)不同,Federation 使用声明性编程模型,该模型使每个服务仅实现图中负责的部分。
Rust是我最喜欢的编程语言,它安全并且快速,非常适合用于开发API网关这样的基础服务。
我猜GraphGate的性能会好很多(我还没有做基准测试,但很快会加上),并且支持订阅。