首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >docker/微服务中的RabbitMQ侦听器

docker/微服务中的RabbitMQ侦听器
EN

Stack Overflow用户
提问于 2019-03-14 16:52:21
回答 1查看 384关注 0票数 3

我已经在aws ecs中部署了一些微服务(通过CI/CD到jenkins),每个任务都有自己的服务和任务定义。Apache在前台运行,如果apache崩溃,将从其服务部署docker。

我的开发团队正在使用RabbitMQ在微服务之间进行通信。很少有微服务需要监听RabbitMQ服务器中的特定事件(Rabbit安装在单独的新闻ec2实例上)

为了监听兔MQ服务器,我们应该将监听程序作为守护进程运行吗?开发团队要求在docker部署时运行以下代码,以便侦听rabbit mq服务器。

代码语言:javascript
复制
php /app/public/yii queue/listen

并设置cron作业,以便侦听器在崩溃时启动。据我所知,docker容器只能在前台运行一个进程,目前Apache在前台运行。如果我尝试在后台运行守护进程( cron和rabbit侦听器),那么当这些守护进程中的任何一个崩溃时,docker容器都不会重新启动。

对于这种情况,有没有更安全的方法?在docker容器中运行rabbit mq listener的最佳实践是什么?

EN

回答 1

Stack Overflow用户

发布于 2019-03-14 17:35:13

如果你的问题是在一个容器中运行更多的进程,一个更一般的概念是创建一个脚本,例如。在容器中执行start_service.sh,并在docker文件的CMD指令中执行。如下所示:

代码语言:javascript
复制
#!/bin/bash  
process1 ... &  
process2 ... &  
daemon-process1   

sleep infinite

在后台启动一个进程后,&将使脚本继续运行,即使它不打算作为守护进程运行。最后的无限休眠将阻止脚本退出,这将退出容器。

如果您在容器中运行多个进程,请考虑在容器中使用"init“进程,如dumb-init。点击此处了解更多信息https://github.com/Yelp/dumb-init/blob/master/README.md

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55158327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档