Laravel Vapor 队列已达到极限,尚不清楚有什么解决方案

Laravel Vapor 队列已达到极限,尚不清楚有什么解决方案

我是 AWS 上的无服务器托管新手。我通过以下方式配置了一个可用的无服务器环境Laravel Vapor,但在高负载下会出现一些问题。

高负载是指几秒内有 10,000 个请求,所有请求都会对数据库进行更改。

我现在使用 PostgreSQL 数据库实例 (db.t3.micro),而不是无服务器版本,并且发现可以处理的请求存在一些限制: “SQLSTATE[08006] [7] FATAL: 剩余的连接槽保留用于非复制超级用户连接”

我该如何解决这个问题?用无服务器实例替换它还是扩展固定大小的 PostgreSQL?

队列本身是无服务器的吗?还是我可以专门为队列分配更多内存?还是将其与实例本身获得的内存相结合?

这是当前的 Vapor.yml 文件

id: ---
name: foobar-***
separate-vendor: true
environments:
  staging:
    warm: 10
    scheduler: false
    timeout: 60
    memory: 1024
    queue-memory: 2048
    cli-memory: 512
    cache: serverless
    database: “database-***"
    max_connections: 10000
    balancer: “**-balancer"
    runtime: php-7.4
    build:
      - "COMPOSER_MIRROR_PATH_REPOS=1 composer install"
      - "php artisan event:cache"
      - "php artisan migrate --force"
    domain: "*.domain.app"

答案1

此错误与数据库的最大连接数有关。

打电话show max_connections;询问这个限制是多少。t3.micro根据 AWS 文档,这个限制是 112。

这将随着数据库实例的增大而自动增加,但是您可以覆盖参数组分配给 RDS 实例。

更改所拨打的号码,max_connctions直到找到适合您的号码。

相关内容