Laravel 负载均衡器背后的事件 - 如何使事件对自动缩放组中的所有服务器可见
Laravel events behind load balancer - how to make the event visible to all the servers in the autoscale group
我有一个申请 运行 Laravel 6.1。有些客户端通过 laravel websockets 连接到它并监听事件。我有一个向该服务器发送 post 请求的外部服务,该服务器随后会引发一个事件,而 websocket 客户端会看到它。我在开发阶段,还没有部署,这是我目前正在研究的。我使用 Docker,所以有一个 nginx 容器、一个 php 容器和一个 Mysql 容器(在生产中,容器将使用 RDS)
这在开发中运行良好,但计划是使用 Elastic Beanstalk 在 ECS 中部署,因为它为每个 EC2 实例启用了多个容器。我正计划让这些实例使用负载平衡器自动缩放,所以我的问题是 如何使传入事件在所有服务器上引发并可见? 例如,post 请求可能会命中一个实例,连接到该实例的客户端会看到事件已引发,但连接到另一个实例的客户端将看不到引发的事件。这是准确的吗?我想这些事件必须被发送到某种由所有实例监视的“队列”,但不确定如何使用 Laravel 或是否有更简单更快的方法来实现它。
我有一个申请 运行 Laravel 6.1。有些客户端通过 laravel websockets 连接到它并监听事件。我有一个向该服务器发送 post 请求的外部服务,该服务器随后会引发一个事件,而 websocket 客户端会看到它。我在开发阶段,还没有部署,这是我目前正在研究的。我使用 Docker,所以有一个 nginx 容器、一个 php 容器和一个 Mysql 容器(在生产中,容器将使用 RDS)
这在开发中运行良好,但计划是使用 Elastic Beanstalk 在 ECS 中部署,因为它为每个 EC2 实例启用了多个容器。我正计划让这些实例使用负载平衡器自动缩放,所以我的问题是 如何使传入事件在所有服务器上引发并可见? 例如,post 请求可能会命中一个实例,连接到该实例的客户端会看到事件已引发,但连接到另一个实例的客户端将看不到引发的事件。这是准确的吗?我想这些事件必须被发送到某种由所有实例监视的“队列”,但不确定如何使用 Laravel 或是否有更简单更快的方法来实现它。