Я развернул несколько микросервисов в aws ecs (через CI / CD и jenkins). У каждой задачи есть свой сервис и определение задачи. Apache работает на переднем плане, и докер будет развернут из своего сервиса в случае сбоя apache.
Моя команда разработчиков использует RabbitMQ для связи между микросервисами. немногие микросервисы должны прослушивать определенное событие на сервере RabbitMQ (Rabbit установлен на отдельном экземпляре news ec2)
Для прослушивания сервера rabbit MQ мы должны запускать слушатель как демон? Команда разработчиков попросила выполнить следующий код во время развертывания докера, чтобы он прослушивал сервер rabbit mq.
php /app/public/yii queue/listen
и установите задание cron, чтобы слушатель запускался при его падении.
Насколько мне известно, Docker-контейнер может запускать только один процесс на переднем плане. В настоящее время Apache работает на переднем плане. Если я попытаюсь запустить демона (слушателя cron и rabbit mq) в фоновом режиме, контейнер Docker не будет перезапущен, если какой-либо из этих демонов потерпит крах.
Есть ли более безопасный подход для этого сценария? Какова наилучшая практика для запуска rabbit mq listener в Docker-контейнере?