Serverless graphql 拆分成微服务

Posted

技术标签:

【中文标题】Serverless graphql 拆分成微服务【英文标题】:Serverless graphql split into micro services 【发布时间】:2018-06-28 08:07:19 【问题描述】:

如何将在一个 lambda 函数中运行的无服务器 graphql 端点拆分为多个微型 lambda 函数以实现可扩展性? 是否需要有多个graphql端点?还是只需要一个 graphql 端点和解析器分成单独的 lambda 函数?最好的架构是什么?

【问题讨论】:

【参考方案1】:

通常,您使用单个端点访问整个 GraphQL API。

来自GraphQL.org:

GraphQL API 是按照类型和字段进行组织的,而不是端点。 从单个端点访问数据的全部功能。 [强调]

当然,您可以拥有多个 GraphQL API,但它们就像单独的服务,您的客户需要哪一个来访问哪些数据。

您可以拥有一个 GraphQL 端点,然后将一些工作分派给多个 Lambda 函数,但它不一定需要比单个函数更具可扩展性。请记住,这个单个函数可能会运行多次,因此一个函数执行两件事的可扩展性不亚于两个各执行一件事的函数。

例如How to write GraphQL Apps using AWS Lambda on Cloud Academy 建议使用 Express 对整个 API 使用单个 AWS Lambda 函数。

也许其他一些构建服务的方法可能更适合您的需求,例如见Designing a GraphQL APIAWS AppSync Developer Guide。

【讨论】:

以上是关于Serverless graphql 拆分成微服务的主要内容,如果未能解决你的问题,请参考以下文章

SpringCLoud

微服务全流程分析

转转服务治理实践

微服务架构之 Service Mesh 初体验

腾讯云微计算实践:从Serverless说起,谈谈边缘计算的未来

踩坑实践:如何消除微服务架构中的系统耦合?