AWS AppSync 热门2017年〜
全托管构建和运营 GraphQL API 的实时数据同步服务
它能做什么
AWS AppSync 是基于 GraphQL 的全托管 API 服务。可轻松构建集成 DynamoDB、Lambda、RDS、OpenSearch 等多个数据源的 GraphQL API,支持实时数据同步和离线访问。前端应用通过单一端点高效获取所需数据,大幅加速移动应用和 SPA 的开发。
使用场景
用于实时聊天应用后端构建、移动应用的离线数据同步、作为整合多个微服务数据的 BFF(Backend for Frontend)实现、IoT 仪表板的实时数据展示、社交媒体应用的动态更新通知等需要实时性和数据集成的各类应用。
日常类比
可以将其比作餐厅的点餐系统。传统的 REST API 像套餐一样,固定搭配的菜品一起上。使用 GraphQL 的 AppSync 则像自助餐,可以只选取自己需要的菜品(数据)。而且新菜品上架时还会实时通知您。
什么是 AppSync
AWS AppSync 是全托管提供 GraphQL API 构建和运营的服务。GraphQL 是 Facebook 开发的查询语言,客户端可以指定所需数据的形状进行请求,解决了 REST API 常见的过度获取(获取不需要的数据)和获取不足(因数据不足需要额外请求)问题。AppSync 让您无需管理基础设施即可利用 GraphQL 的优势。
实时同步与离线支持
AppSync 的一大优势是基于 WebSocket 的实时订阅功能。数据变更可即时推送通知到客户端,轻松构建聊天和协作工具等实时应用。结合 Amplify DataStore,还可实现离线优先设计——网络断开时在本地操作数据,连接恢复时自动与服务器同步。 想要深入了解实时同步和离线支持,可以参考相关书籍(Amazon)。
数据源集成
AppSync 可通过解析器集成多个数据源,作为单一 GraphQL 端点公开。可组合 DynamoDB 表、Lambda 函数、RDS 数据库、OpenSearch 集群、HTTP 端点等多种后端构建 API。解析器可用 VTL(Velocity Template Language)或 JavaScript 编写,灵活进行数据转换和业务逻辑处理。
注意事项
- GraphQL 的 Schema 设计直接影响应用的易用性,请在充分了解前端需求后再进行设计
- 实时订阅需要维持 WebSocket 连接,大量并发连接时需注意连接数上限和成本