Docker 负载平衡器后面的Laravel事件-如何使事件对autoscale组中的所有服务器可见

Docker 负载平衡器后面的Laravel事件-如何使事件对autoscale组中的所有服务器可见,docker,amazon-ec2,amazon-elastic-beanstalk,amazon-ecs,laravel-6,Docker,Amazon Ec2,Amazon Elastic Beanstalk,Amazon Ecs,Laravel 6,我有一个运行Laravel6.1的应用程序。有一些客户端通过laravel websockets连接到它并侦听事件。我有一个外部服务,它向这个服务器发送post请求,然后服务器将引发一个事件,websocket客户端将看到它。我在开发阶段,它还没有被部署,这是我目前正在研究的。我使用Docker,因此有一个nginx容器、一个php容器和一个Mysql容器(在生产中,这些容器将使用RDS) 这在开发中效果很好,但计划是在ECS中部署弹性Beanstalk,因为它可以为每个EC2实例启用多个容器。

我有一个运行Laravel6.1的应用程序。有一些客户端通过laravel websockets连接到它并侦听事件。我有一个外部服务,它向这个服务器发送post请求,然后服务器将引发一个事件,websocket客户端将看到它。我在开发阶段,它还没有被部署,这是我目前正在研究的。我使用Docker,因此有一个nginx容器、一个php容器和一个Mysql容器(在生产中,这些容器将使用RDS)

这在开发中效果很好,但计划是在ECS中部署弹性Beanstalk,因为它可以为每个EC2实例启用多个容器。我计划使用负载平衡器自动扩展这些实例,因此我的问题是如何使传入事件在所有服务器上引发并可见?例如,post请求可能会命中一个实例,连接到该实例的客户端会看到该事件被引发,但是连接到另一个实例的客户端将看不到引发的事件。这准确吗?我认为事件必须发送到某种“队列”,由所有实例监控,但不确定如何使用Laravel实现,或者是否有更简单更快的方法。

根据评论

建议的解决方案涉及使用,而不是SQS

原因是sns允许同时向多个收件人发送消息。相比之下,SQS设计为只向一个收件人发送一次消息,除非在体系结构中使用。

基于注释

建议的解决方案涉及使用,而不是SQS


原因是sns允许同时向多个收件人发送消息。相比之下,SQS设计为只向一个收件人发送一次消息,除非在体系结构中使用。

不是队列,但SNS会更好。不能给出确切的答案,但是SNS对于所有节点/实例的通知将是首要考虑的事情。我想那会有用的,谢谢!没问题。如果你不介意的话,我会根据评论提供答案,以备将来参考。不是排队,但SNS会更好。不能给出确切的答案,但是SNS对于所有节点/实例的通知将是首要考虑的事情。我想那会有用的,谢谢!没问题。如果你不介意,我将根据评论提供答案,以供将来参考。