2024 年 8 月 21 日

推出 Prisma Accelerate 连接池的自动扩缩功能

自首次发布以来,Prisma Accelerate 已经处理了近 100 亿次查询!而且它还在不断改进:通过增加自动扩缩功能,Prisma Accelerate 能够更好地帮助应用程序进行扩缩,并消除对数据库连接瓶颈的担忧。

Connection pooling using multiple instances of accelerate's connection poolers

为什么连接池很重要

在数据库性能方面,连接池常常被忽视或长时间忽略。

刚开始时,没有它也能应付。即使是小型数据库服务器也能处理 1 到 2 个应用程序服务器建立 5-10 个连接。随着您业务的增长,更好的连接管理是一种快速且轻松的提升。

大多数人认为连接池器只在超大规模时才需要,但最好在此之前就实现它!

传统数据库连接的挑战

当您的应用程序与数据库交互时,通常会遵循以下步骤

  1. 打开到数据库的 TCP 连接
  2. 向数据库发送查询
  3. 关闭 TCP 连接

*每次数据库交互*都会重复这个过程。打开和关闭数据库连接出了名的慢且消耗资源,因为它需要身份验证、三次握手以及内存和 CPU 等资源的分配。

Requests to the database from around the globe

在现代无服务器和边缘计算环境中,这一挑战变得更加严峻。在这些场景中,每次单独的函数调用都会尝试建立新的数据库连接。

连接池如何帮助您的应用程序

连接池器不像每次请求都打开和关闭连接,而是维护一个开放的数据库连接池,以便在将来需要对数据库进行请求时重复使用。

数据库交互的流程如下所示

  1. 从连接池管理器请求一个连接
  2. 向数据库发送查询
  3. 将连接返回给连接池

使用连接池

  • 减少了持续创建和关闭连接的开销
  • 提高了数据库操作的响应时间
  • 有助于管理流量高峰而不会导致中断。
  • 随着您的数据和用户数量增长,有效扩缩

在我们最近的文章中了解更多关于连接池的好处:使用连接池拯救黑色星期五

推出 Prisma Accelerate 的自动扩缩功能

自去年发布以来,Prisma Accelerate 已经处理了近 100 亿次查询,证明了其生产环境就绪性。展望下一个 1000 亿次查询,我们正在推出能够使 Prisma Accelerate 更加强大的功能。通过增加自动扩缩功能,Prisma Accelerate 将更适合扩缩任何应用程序!

新的自动扩缩工作原理

  1. 当您启用 Accelerate 时,会设置一个连接限制。
  2. Accelerate 持续监控正在使用的活动连接数量。
  3. 如果需要更多资源来处理应用程序的流量,Accelerate 将在您设置的连接限制内分配额外资源。
  4. 随着流量减少,任何额外资源都将被移除。

Autoscaling Accelerate's connection pooling nodes

扩缩是通过水平方式实现的,即随着您的负载增加和流量增长,提供更多连接池实例。这不仅有助于应对尖峰的、不可预测的工作负载,也有助于不断发展的应用程序,这意味着我们可以大规模管理您的流量。

在 Prisma Accelerate 中设置连接限制

在 Prisma Accelerate 中,您可以在启用或更新现有已启用 Accelerate 环境的配置时,通过连接池部分中的连接池大小下拉菜单设置连接限制。

Configuring Accelerate connection pool size in Platform Console

访问文档,了解更多关于配置 Accelerate 连接池大小的信息

设置正确的连接限制为何重要

当您的应用程序负载很高时,设置正确的连接限制至关重要。原因如下

  • 资源分配:您设置的限制有助于 Accelerate 高效分配资源。
  • 性能指标:它是理解应用程序数据库交互模式的关键指标。
  • 扩缩效率:适当的限制确保及时扩缩,防止在瓶颈影响性能之前发生。

设置连接限制的最佳实践

以下是一些帮助您为应用程序设置正确连接限制的最佳实践。

  1. 设置您的连接限制:分析您应用程序的需求并相应地设置连接限制。我们建议将可用连接的大约三分之一分配给 Accelerate,以便为需要与数据库交互的其他服务提供连接缓冲区。请注意,Accelerate 可能会在短时间内超出分配的连接,以有效管理 schema 更改或迁移到新的 Prisma 版本。
  2. 根据需要调整:随着您的应用程序增长,重新审视并调整您的连接限制。

通过理解和利用连接限制,您不仅仅是调整配置,而是在直接影响 Accelerate 如何优化应用程序的性能。连接池不仅适用于超大规模;它是一种可以在应用程序不同增长阶段都受益的技术。

如果您想知道缓存是否是提高应用程序性能、减少数据库往返的另一个步骤,那么您是对的,Accelerate 也支持这一点!您可以在我们最近的博客文章中了解更多关于数据库缓存的好处:速度与节省:使用 Prisma Accelerate 缓存数据库查询

立即试用 Accelerate,提升您的应用程序性能

如果您想亲身体验使用 Prisma Accelerate 带来的性能提升,请访问Accelerate 速度测试或使用我们的入门项目之一开始。


开始使用 Accelerate

不要错过下一篇文章!

订阅 Prisma 新闻简报