关于 Prisma Accelerate 的已知限制
以下是使用 Accelerate 时的已知限制。如果您遇到任何其他限制,请通过 Discord 与我们分享。
无法缓存原始查询
目前,无法缓存原始查询的响应。
与 fluent API 不兼容
客户端扩展(Accelerate 中使用)目前无法正确转发 fluent API 类型。我们希望尽快在客户端扩展中修复此问题。
与极其繁重或长时间运行的查询不兼容
Accelerate 旨在处理高性能、低延迟的查询。它不适用于可能导致性能问题或资源争用的极其繁重或长时间运行的查询。虽然限制是可配置的,但我们建议优化您的查询以确保它们符合推荐的准则。
对于无法优化或精简的查询,我们推荐以下两种解决方案之一
-
使用只读副本扩展:Prisma ORM 只读副本扩展 允许您设置两个不同的连接:一个
primary和一个replica。您可以将 Accelerate 连接设置为primary,然后将直接连接设置为replica。任何资源密集型或长时间运行的查询都可以路由到replica,而primary(您的 Accelerate 连接)将处理正常查询。请注意,此解决方案要求您既要设置直接连接,又要使用完整的生成 Prisma 客户端(即不带--no-engine)。 -
分离分析查询:我们首选的解决方案是将您的分析查询分离到单独的应用程序中。然后,此单独的应用程序可以使用直接连接,以便它可以运行繁重的查询,而不会影响您的 Accelerate 驱动应用程序的性能或成本。
如果您有需要运行极其繁重或长时间运行的查询和 Prisma Accelerate 的用例,请与我们联系。
与 MongoDB 连接字符串中的直接 IPv4 地址不兼容
Accelerate 不支持 MongoDB 连接字符串中的直接 IPv4 地址。当提供 IPv4 地址时,Accelerate 会将其转换为 IPv6 格式以通过其 NAT 网关进行路由。此转换可能导致连接字符串因端口值的格式而被视为无效。
解决方法:要解决此问题,请创建一个指向您的 IPv4 地址的 DNS 记录,并在您的连接字符串中使用该 DNS 记录而不是直接 IP。
示例
- IPv4 连接字符串(不支持):
mongodb://user:password@192.168.1.100:27017/db_name - DNS 记录连接字符串(支持):
mongodb://user:password@my-database.example.com:27017/db_name
有关 Accelerate IPv6 优先设计的更多详细信息,请参阅我们的博客文章。