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. 如果需要更多资源来处理应用程序的流量,则将分配额外的资源,最多达到您设置的连接限制。
  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 可能会短暂超出分配的连接,以有效地管理模式更改或迁移到新的 Prisma 版本。
  2. 根据需要调整:随着应用程序的增长,重新访问并调整您的连接限制。

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

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

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

如果您想亲眼看看使用 Prisma Accelerate 可以获得哪些性能提升,请查看 Accelerate 速度测试 或开始使用我们的入门项目之一。


开始使用 Accelerate

不要错过下一篇文章!

注册 Prisma 新闻通讯