【发布时间】:2019-08-05 02:24:36
【问题描述】:
我在 aws ecs 中部署了一些微服务(通过 CI/CD 通过 jenkins)每个任务都有自己的服务和任务定义。 Apache 正在前台运行,如果 apache 崩溃,将从其服务部署 docker。
我的开发团队正在使用 RabbitMQ 在微服务之间进行通信。少数微服务需要监听 RabbitMQ 服务器中的某个事件(Rabbit 安装在单独的新闻 ec2 实例上)
为了监听rabbit MQ服务器,我们应该将监听器作为守护进程运行吗?开发团队要求在 docker 部署时运行以下代码,以便它能够监听 rabbit mq 服务器。
php /app/public/yii queue/listen
并设置一个 cron 作业,以便侦听器在崩溃时启动。 据我所知,docker 容器只能在前台运行一个进程,目前,Apache 正在前台运行。如果我尝试在后台运行守护进程(cron 和 rabbit mq 监听器),当这些守护进程中的任何一个崩溃时,docker 容器都不会重新启动。
对于这种情况,有什么更安全的方法吗?在 docker 容器中运行 rabbit mq listener 的最佳实践是什么?
【问题讨论】:
标签: docker rabbitmq microservices amazon-ecs