深入解析 RDS Serverless 之 Data API

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
函数计算FC,每月免费额度15元,12个月
简介: 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 /  

相关文章
|
11天前
|
缓存 前端开发 中间件
[go 面试] 前端请求到后端API的中间件流程解析
[go 面试] 前端请求到后端API的中间件流程解析
|
2月前
|
机器学习/深度学习 监控 物联网
函数计算操作报错合集之调用接口提示Cannot copy out of meta tensor; no data! 是什么原因
在使用函数计算服务(如阿里云函数计算)时,用户可能会遇到多种错误场景。以下是一些常见的操作报错及其可能的原因和解决方法,包括但不限于:1. 函数部署失败、2. 函数执行超时、3. 资源不足错误、4. 权限与访问错误、5. 依赖问题、6. 网络配置错误、7. 触发器配置错误、8. 日志与监控问题。
|
2月前
|
设计模式 缓存 JavaScript
API设计模式:REST、GraphQL、gRPC与tRPC全面解析
API设计模式:REST、GraphQL、gRPC与tRPC全面解析
46 0
|
11天前
|
安全 关系型数据库 MySQL
揭秘:如何在无影的Serverless世界中,悄无声息地操控MySQL数据库!
【8月更文挑战第8天】在云计算领域,Serverless 枟能凭借其高效与弹性特性脱颖而出。本文采用问答形式解析函数计算环境中 MySQL 数据库的安全高效访问方法。介绍了如何利用数据库插件或 SDK 连接 MySQL,并提供了一个使用 Python 和 `pymysql` 在阿里云函数计算中连接 MySQL 的示例代码片段。同时强调了通过环境变量或密钥管理服务安全处理数据库凭证的重要性。随着 Serverless 技术的发展,数据库操作将更加简便。
31 7
|
8天前
|
数据采集 JSON API
淘系商品详情图属性sku价格解析,API接口系列
淘宝(Taobao)作为阿里巴巴集团旗下的电商平台,其商品详情图、属性、SKU和价格的采集通常不直接通过公开的API接口来实现,因为淘宝的API主要面向商家和开发者提供店铺管理、订单处理、物流查询等功能,并不直接提供商品详情页的完整数据抓取接口
|
8天前
|
XML JavaScript 前端开发
JavaScript中的DOM解析器DOMParser api的讲解
`DOMParser`能将XML或HTML源码字符串解析成DOM `Document`。通过`new DOMParser()`创建实例,使用`.parseFromString(string, type)`方法进行解析,其中`string`为待解析的字符串,`type`指定解析类型如`text/html`或`text/xml`等,返回一个`Document`对象。例如,可解析包含`<p>666</p>`的字符串并获取其文本内容`666`。
13 1
|
28天前
|
缓存 自然语言处理 搜索推荐
解析微店商品详情的 API 接口获取之道
在电商蓬勃发展的时代,微店的商品详情数据对商家与开发者极具价值。API接口成为挖掘这些数据的关键,助力商家洞察市场,优化策略,实时监控竞品,管理库存;赋能开发者创新,如构建推荐系统和分析工具。获取接口需注册认证,理解政策,明确权限需求。调用API须精读文档,选用合适语言编码,处理错误,优化策略如缓存和异步请求。数据处理涉及自然语言分析、价格预测和情感分析,应用广泛。注意事项包括合规操作、数据安全、适应接口变动及性能优化,确保高效合法利用数据,推动电商进步。
|
1月前
|
JSON 文字识别 数据格式
文本,文识11,解析OCR结果,paddOCR返回的数据,接口返回的数据有code,data,OCR返回是JSON的数据,得到JSON数据先安装依赖,Base64转换工具网站在21.14
文本,文识11,解析OCR结果,paddOCR返回的数据,接口返回的数据有code,data,OCR返回是JSON的数据,得到JSON数据先安装依赖,Base64转换工具网站在21.14
文本,文识11,解析OCR结果,paddOCR返回的数据,接口返回的数据有code,data,OCR返回是JSON的数据,得到JSON数据先安装依赖,Base64转换工具网站在21.14
|
7天前
|
XML 存储 JavaScript
DOM解析器DOMParser api的讲解
DOM解析器DOMParser api的讲解
19 0
|
30天前
|
存储 JSON 安全
OAuth2与JWT在API安全中的角色:技术深度解析
【7月更文挑战第20天】OAuth2和JWT作为两种重要的安全协议,在API安全中发挥着不可或缺的作用。OAuth2通过提供灵活的授权框架,实现了对资源的细粒度访问控制;而JWT则通过其紧凑性和自包含性,确保了身份验证和信息传输的安全性。在实际应用中,将OAuth2和JWT结合使用,可以构建出既强大又安全的API服务,为用户提供更加安全、可靠和便捷的数字体验。

热门文章

最新文章

相关产品

  • 函数计算
  • 推荐镜像

    更多