请教关于 serverless 数据库的问题

2021-08-15 09:33:03 +08:00
 zxCoder

各大服务商提供的云数据库和 serverless 数据库有什么比较大的区别呢,虽然说文档上讲得天花乱坠,不过本质上,难道不是都一样,连接然后,读写数据吗

那对于 serverless 应用来说,每次执行一个函数都需要建立一个数据库连接,这样只要并发数稍微多一点,数据库就承受不了吧,所以 serverless 的数据库是有对这种情况做什么优化吗

但是单纯从介绍和提供的文档来看没看出特别的不同

1026 次点击
所在节点    问与答
4 条回复
shot
2021-08-15 11:29:42 +08:00
https://www.jeremydaly.com/aurora-serverless-the-good-the-bad-and-the-scalable/

Max Connections
A major limitation of relational databases in serverless architectures is the maximum number of concurrent connections allowed by the database engine. While FaaS services like Lambda may scale infinitely (in theory anyway), massive spikes in volume can quickly saturate the number of available connections to the underlying database. There are ways to manage connections in serverless environments (also see Managing MySQL at Serverless Scale), but even with Aurora Serverless, this still appears to be a possible limiting factor.

AWS uses the following formula for generating the max_connections value for Aurora instances:

log( ( <Instance Memory> * 1073741824) / 8187281408 ) * 1000 = <Default Max Connections>

A db.r4.xlarge instance with 30.5 GB of memory for example would have a default max_connections value of 2,000.

log( (30.5 * 1073741824) / 8187281408 ) * 1000 = 2000
whileFalse
2021-08-15 12:00:30 +08:00
我觉得你口中的 Serverless 数据库可能有两种。以下全部以 AWS 的服务举例。

1. 为 Serverless 型应用优化的数据库,在应用程序不使用连接池而是一次性连接时也能很好的工作。例如 DynamoDB 和 RDS Data API,前者是原生使用 HTTP 协议,后者是在标准的 MySQL 等数据库前面加上了 HTTP 层代理。

2. 数据库本身以 Serverless 形式驱动,不用管理数据库实例,可以无缝伸缩,例如 DynamoDB 和 Aurora Serverless 。前者本身是 NoSQL,从设计上就是完全无缝伸缩的;后者则是分别在两个层面实现伸缩:Aurora 本身实现了存储层面的无缝伸缩; Aurora Serverless 通过预先准备计算资源池,进一步在计算层面实现无缝伸缩,因而实现了完整的无缝伸缩。
zxCoder
2021-08-15 12:07:23 +08:00
@shot 看完好像还是没啥实质的东西....
shot
2021-08-15 17:42:41 +08:00
@zxCoder #3

从文章里可以看到,Aurora Serverless 可以根据负载情况自动调整配置规格,最大规格可以支持到最多 6000 连接数。

如果把一个连接数看作一个并发访问,那相当于是能支撑一个「千万用户级」的系统服务。
虽然达不到 Lambda 的无限伸缩(理论上),但对于 90%(其实我想说 99%)以上的业务场景也基本够用了。

如果期望支持更大的并发,需要组合其它技术来支撑,比如说缓存、消息队列、拆分服务。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/795843

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX