我有一个运行 Laravel 6.1 的应用程序。有客户端通过 laravel websockets 连接到它并监听事件。我有一个外部服务,它向此服务器发送发布请求,然后引发事件,websocket 客户端会看到它。我处于开发阶段,尚未部署,这是我目前正在研究的。我使用 Docker,因此有一个 nginx 容器、一个 php 容器和一个 Mysql 容器(在生产中,容器将使用 RDS)
这在开发中运行良好,但计划是在 ECS 中部署,使用 Elastic Beanstalk,因为它允许每个 EC2 实例使用多个容器。我计划让这些实例使用负载均衡器自动扩展,所以我的问题是我如何才能使传入事件在所有服务器上被引发并可见?例如,post 请求可能会命中一个实例,连接到该实例的客户端将看到已引发事件,但连接到另一个实例的客户端将看不到引发的事件。这是准确的吗?我猜想事件必须发送到某种由所有实例监视的“队列”,但不确定如何使用 Laravel 实现这一点,或者是否有更简单、更快捷的方法。
答案1
使用 AWS SNS 进行通知,以便所有实例进行监控