深入解析 RDS Serverless 之 Data API

本文涉及的产品
函数计算FC,每月15万CU 3个月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: RDS Serverless Data API 已发布

前言


云数据库以及Serverless数据库的出现,对传统IT行业产生了巨大影响。用户可以在云中快速启动并运行数据库,而无需关心任何基础设施。随着Serverless以及FaaS的不断成熟,云数据库的发展方向也相应的发生了变化,降本增效越来越受到重视。同时在外界环境的快速变化下,应用程序的快速开发、快速迭代、高扩展性也成为了主要的需求。


阿里云 RDS Serverless Data API 正是在这种背景下诞生的。RDS Serverless Data API 提供了数据库操作接口,用户可以通过HTTPS请求或SDK的方式和数据库进行交互。通过该服务可以降低开发者使用数据库的门槛,同时也减少了开发者管理应用服务器的成本,最终实现化繁为简,降本增效的目标。


传统模式 vs DataAPI模式操作数据库代码量对比:传统模式(鉴权、缓存、连接池等能力还需额外编码)

1.JPG

DataAPI(内置鉴权、缓存、连接池、格式化结果集等各种能力)

2.PNG

什么是Data API ?


Data API 提供了一种安全的、快速扩展的、具有标准化查询和响应格式的API,将应用程序直接与云数据库连接。


Data API 代表了下一代应用程序构建的方式。借助于 Data API,应用程序可以打破与数据库的紧密耦合,并具备易用性、数据安全性、可扩展性、可移植性等特性。


Data API 为数据提供了一个无状态的服务层,这样做不仅可以协调存储和查询,而且还能让应用具备负载均衡的能力,并且让水平扩展变得极其容易。


阿里云 RDS Serverless Data API 无需配置,开箱即用。它可以提供无限的吞吐量并保持始终可用,保障您的应用程序可以在不可预测的负载下平稳运行。


化繁为简 降本增效


RDS Serverless Data Service 的核心目的是帮助用户减少成本,降低开发难度,提高生产效率。


降低使用数据库门槛

通过 RDS Data Service,用户不再需要配置数据库相关的连接信息、连接池等,使用简单的 RDS Data API 即可将数据存储和业务逻辑结合到一起,就算是初级开发人员也能快速上手业务逻辑开发,大大缩短开发周期。


降低使用成本

通过使用 RDS Serverless Data API,一些特定的系统可以免去后端服务,直接从前端请求到数据库,简化系统架构的同时,由于不再需要服务端业务逻辑开发,减少了应用程序开发的人力成本,降低了维护基础设施的风险,而且更便于扩展和快速迭代。

3.JPG

系统架构简化


降低系统风险

对于组件越多越复杂的系统,出故障的风险就越大。通过使用 RDS Data API,将数据持久层从业务逻辑中抽离,可以极大的降低业务系统的复杂度,从而降低系统风险。


整体架构

4.JPG

RDS Data API Service 整体架构


安全认证体系

RDS Serverless Data Service 使用AK/SK + ARN鉴权模式。用户无需在应用程序中存储数据库凭证,只需要使用 Secrets Manager 来存储在调用 RDS Data API 时需要传入的 ARN。RDS Data API 会透明地调用 Secrets Manager,根据用户传入的 AK/SK 和 ARN 进行鉴权。同时,使用 AK/SK + ARN 鉴权模式意味着用户无需在调用 RDS Data API 的时候传入数据库的用户名、密码。由此以来,安全性得以保障。

5.JPG

安全认证流程


服务核心架构

RDS Serverless Data API 的主要服务流程如下:

  1. 接收请求,进行参数初始化,同时保存用户配置
  2. 鉴权,通过则获取数据库连接,失败则直接响应失败信息
  3. SQL 参数合法性校验,验证参数类型是否合法,是否为空等
  4. SQL 参数赋值,将传入的实参赋值给对应的形参
  5. SQL 执行,并获取执行结果
  6. 结果集获取及处理
  7. 根据用户配置,构建返回值,最后响应客户端

6.JPG

服务核心架构


服务能力模型

  • SQL执行

RDS Serverless Data API 支持执行单条 SQL 语句、批处理 SQL 语句,用户可以控制是否返回所需的数据(列元数据、JSON 格式结果集等)。


  • SQL事务

RDS Serverless Data API 支持事务开启、事务提交、事务回滚,用户可以通过在执行 SQL 语句时传入事务ID,将 SQL 置于事务中执行。


  • 事务自动开启

为了保证数据的正确一致性,RDS Serverless Data API 会在用户未指定事务时,自动将 SQL 放置于事务之中执行。如果事务执行过程出错,会自动回滚。


  • 事务超时机制

开发中经常会遇到数据库锁等待超时的问题,为了避免这个问题,RDS Serverless Data API 在从用户开启事务之后开始计时,如果该事务对应的事务ID在一定时间内(3分钟)没有被使用,则会将其认定为超时。如果事务在其提交之前超时,该事务会自动回滚。


  • 结果集大小限制

通过过往开发经验可以看到,很多应用程序会因为读入内存的数据量过大导致内存溢出,进而造成应用程序崩溃,影响业务。因此,RDS Serverless Data API 对查询结果集大小进行了限制(最大不超过 1M),最大程度保障您的应用程序平稳运行。


  • SQL超时运行

如果 DDL 语句在完成运行之前超时中断,可能会导致错误并且损坏数据结构。因此,RDS Data API Service 提供了开关,用于控制是否在请求超时后继续运行SQL。


  • SQL参数化

用户无需根据不同的值来构造重复的SQL语句,RDS Serverless Data API 支持带参数的SQL。在运行时,SQL中的形参会被替换为传入的实参值。


极致性能


RDS Data API 提供近似于原生数据库驱动的性能。


连接池

当第一次调用 API 访问某个数据库实例时,RDS Serverless Data API 会为该数据库实例维护一个连接池,并保持一定数量的连接。当后续请求到来时,不需要和数据库建立新的连接,而是直接从连接池获取连接,以此来获得极致的响应速度。当数据库实例在一段时间内没被访问时,其对应的连接会被销毁,从而释放数据库实例的系统资源。


鉴权缓存

为了安全性,每次调用 RDS Serverless Data API 都会进行鉴权。因此,为了最大程度提高性能, RDS Data API 对鉴权结果进行了缓存。鉴权结果会保留一段时间,在这段时间内,如果用户再次请求并且命中缓存,则直接从缓存中获取鉴权结果,并重置其过期时间。


批处理SQL语句

RDS Serverless Data API 提供了执行批处理 SQL 的 API,用户可以使用一组参数集来运行 DML 语句(INSERT、UPDATE)。与单独的 INSERT 和 UPDATE 语句相比,批处理 SQL 语句可以显著提高性能。这在批量的数据插入和数据更新场景下极为有用。


了解更多


未来 RDS Serverless Data API 会继续大力发展,在产品功能、形态以及兼容性等方面不断提升,持续加强稳定性,让客户更省心,从而更专注于自身业务的发展,合作共赢。


RDS Serverless Data API 已经发布,您可以通过点击「查看详情」来查看产品功能。


作者信息

刘文灼,花名斩夜,RDS全栈工程师,熟悉RDS管控前后端各种技术栈。关于Serverless、Data API任何相关问题,都可以邮件咨询:vogts.wangt@alibaba-inc.com


 / End /  

相关文章
|
7天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
22 2
|
28天前
|
存储 缓存 搜索推荐
Lazada淘宝详情API的价值与应用解析
在电商行业,数据是驱动业务增长的核心。Lazada作为东南亚知名电商平台,其商品详情API对电商行业影响深远。本文探讨了Lazada商品详情API的重要性,包括提供全面准确的商品信息、增强平台竞争力、促进销售转化、支持用户搜索和发现需求、数据驱动决策、竞品分析、用户行为研究及提升购物体验。文章还介绍了如何通过Lazada提供的API接口、编写代码及使用第三方工具实现实时数据获取。
55 3
|
1月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
107 3
|
2月前
|
存储 JSON API
深入解析RESTful API设计原则与实践
【9月更文挑战第21天】在数字化时代,后端开发不仅仅是编写代码那么简单。它关乎于如何高效地连接不同的系统和服务。RESTful API作为一套广泛采用的设计准则,提供了一种优雅的解决方案来简化网络服务的开发。本文将带你深入了解RESTful API的核心设计原则,并通过实际代码示例展示如何将这些原则应用于日常的后端开发工作中。
|
8天前
|
API 数据安全/隐私保护
抖音视频,图集无水印直链解析免费API接口教程
该接口用于解析抖音视频和图集的无水印直链地址。请求地址为 `https://cn.apihz.cn/api/fun/douyin.php`,支持POST或GET请求。请求参数包括用户ID、用户KEY和视频或图集地址。返回参数包括状态码、信息提示、作者昵称、标题、视频地址、封面、图集和类型。示例请求和返回数据详见文档。
|
23天前
|
监控 安全 Serverless
"揭秘D2终端大会热点技术:Serverless架构最佳实践全解析,让你的开发效率翻倍,迈向技术新高峰!"
【10月更文挑战第23天】D2终端大会汇聚了众多前沿技术,其中Serverless架构备受瞩目。它让开发者无需关注服务器管理,专注于业务逻辑,提高开发效率。本文介绍了选择合适平台、设计合理函数架构、优化性能及安全监控的最佳实践,助力开发者充分挖掘Serverless潜力,推动技术发展。
52 1
|
21天前
|
JSON 前端开发 JavaScript
API接口商品详情接口数据解析
商品详情接口通常用于提供特定商品的详细信息,这些信息比商品列表接口中的信息更加详细和全面。以下是一个示例的JSON数据格式,用于表示一个商品详情API接口的响应。这个示例假定API返回一个包含商品详细信息的对象。
|
21天前
|
存储 人工智能 大数据
拼多多详情API的价值与应用解析
拼多多作为中国电商市场的重要参与者,其开放平台提供的商品详情API接口为电商行业带来了新的机遇和挑战。该接口允许开发者通过编程方式获取商品的详细信息,包括标题、价格、描述、图片、规格参数和库存等,推动了电商运营的智能化和高效化。本文将深入解析拼多多详情API的价值与应用,帮助商家和开发者更好地理解和利用这一宝贵资源。
30 0
|
2月前
|
缓存 API 网络架构
Nuxt Kit API :路径解析工具
【9月更文挑战第20天】在 Nuxt Kit API 中,路径解析工具如 `resolvePath()`、`joinPaths()` 和 `relativePath()` 帮助开发者高效处理应用路径,确保资源准确加载,并支持动态路由与组件导入。这些工具提升了应用的灵活性和可扩展性,同时需注意路径准确性、跨平台兼容性和性能优化,以提升用户体验。
36 12
|
1月前
|
JSON JavaScript API
商品详情数据接口解析返回的JSON数据(API接口整套流程)
商品详情数据接口解析返回的JSON数据是API接口使用中的一个重要环节,它涉及从发送请求到接收并处理响应的整个流程。以下是一个完整的API接口使用流程,包括如何解析返回的JSON数据:

热门文章

最新文章

相关产品

  • 函数计算
  • 推荐镜像

    更多