Tag: rabbitmq

重新发送来自RabbitMQ的消息很奇怪

我有docker镜像中的RabbitMQ集群。 RabbitMQ有1个交换“EventExchange”和2个队列:“QueueWait”和“QueueAction”。 队列configuration为重发: x-dead-letter-exchange:EventExchange x-dead-letter-routing-key:QueueAction 耐用:真实 消费者收听QueueAction。 逻辑 消息被插入到队列QueueWait中,并具有variables到期时间 过期后,消息从QueueWait移动到QueueAction 消费者收听QueueAction得到消息 问题 今天我有问题。 过期的消息不会在QueueWait和QueueAction之间移动。 但是,如果我从默认的RabbitMQ GUI中的QueueWait获取所有消息,它们将成功移到QueueAction 环境 docker的形象 – 可能是docker问题? RabbitMQ 3.2.4,Erlang R16B03 UPD: 我必须在消息级别上设置TTL,因为我有variables到期依赖于重新发送的尝试。 我将如何能够保证当前逻辑与保证重发?

在docker中运行rabbitmqadmin失败

我不能得到rabbitmqadmin在我的rabbitmqdocker工作。 我有这个Dockerfile: FROM rabbitmq:3-management RUN apt-get update && apt-get install -y python ADD rabbitmqadmin /usr/local/bin/rabbitmqadmin ADD rabbitconf.json /rabbitconf.json RUN chmod 755 /usr/local/bin/rabbitmqadmin CMD ["/usr/local/bin/rabbitmqadmin -q import /rabbitconf.json"] 像这样构build它: docker build –tag=myrabbit . 像这样运行它: docker run -d -p 8080:15672 myrabbit 它不工作…日志显示: /docker-entrypoint.sh: line 8: /usr/local/bin/rabbitmqadmin -q import /rabbitconf.json: No such file or directory 我究竟做错了什么 ? BR

Docker虚拟主机caching

我使用的是与VirtualBox和dinghy和docker-compose Docker 。 我正在通过docker-compose创build一个容器。 以下是docker-compose.ymlconfiguration。 rabbitmq: image: rabbitmq:3-management ports: – "15672:15672" – "5672:5672" environment: VIRTUAL_HOST: 'rabbitmq.docker' VIRTUAL_PORT: 15672 RABBITMQ_DEFAULT_USER: docker RABBITMQ_DEFAULT_PASS: docker 一切都很好。 我可以通过访问url rabbitmq.docker:15672进入RabbitMQ的pipe理页面,并且用户rabbitmq.docker:15672configuration正确。 我想尝试一下,所以我删除了environment部分。 我删除了图像和容器,并重新构build/运行。 我不明白的是这个,我仍然可以使用相同的uri访问pipe理页面,虽然这次我没有指定一个虚拟主机。 产生的yml文件是这样的 rabbitmq: image: rabbitmq:3-management ports: – "15672:15672" – "5672:5672" 我错过了什么? 由于我不再指定一个虚拟主机,据我了解,这不应该发生。 有没有办法看到Docker使用的所有虚拟主机?

docker中的RabbitMQ不会正常结束,无法重新连接

我正在尝试在2个docker容器中使用RabbitMQ进行RPC。 我已经把它们设置如下: chindow: image: bablot/chindow ports: – "9999:9999" links: – rabbitmq:amq rabbitmq: image: rabbitmq:3 ports: – "15672:15672" 一切工作如预期最初,但后来,当我closures系统与ctrl+c它会导致以下错误: babelotserver_rabbitmq_1 exited with code 143 然后当我继续重新启动系统时: chindow_1 | { [Error: connect ECONNREFUSED 172.17.0.3:5672] code: 'ECONNREFUSED', errno: 'ECONNREFUSED', syscall: 'connect', address: '172.17.0.3', port: 5672 } 编辑: 当我docker stop rabbitmq我得到code 143当我docker stop node.js我得到code 0 为什么这两个不同? 这有意义吗?

Dockerfile与docker运行

我在使用Dockerfile的Docker中发布端口的问题与手动使用docker run的问题相比。 使用下面的命令,Docker容器启动成功,当我访问浏览器中的主机IP地址(192.168.99.100)时,加载了http://192.168.99.100:8080 – RabbitMQ Webpipe理仪表板。 docker run -d –hostname my-rabbit –name some-rabbit -p 8080:15672 rabbitmq:3.5.6-management 在这一点上,我运行以下来释放我想从Dockerfile中使用的端口: docker stop some-rabbit 当我运行下面的docker-compose命令时,一旦我访问上面的同一个URL( http://192.168.99.100:8080 ),就会收到“拒绝连接这个站点192.168.99.100”。 docker-compose build docker-compose up -d 这里是我正在使用的Dockerfile: version: '2' services: rabbitmq: container_name: rabbit hostname: rabbit ports: – "8080:15762" image: rabbitmq:3.5.6-management 以下是docker run后docker run docker ps的结果 6c5a97bd51bc rabbitmq:3.5.6-management "/docker-entrypoint.s" 16 seconds ago Up 15 […]

Docker上的RabbitMQ:当给定端口时,Pika挂起连接,连接被拒绝,没有端口

我正尝试使用pika连接到队列,在我的本地盒子上运行,并在docker容器中运行rabbitmq。 我可以访问http://0.0.0.0:15677上的rabbitmq,同时使用curl命令并在浏览器中查看它,所以我知道rabbitmq看起来好像运行正常 – 但是,我无法使用python连接它。 当我不在我的pika.ConnectionParemeters中包含端口时,连接立即被彻底拒绝。 当我包含端口时,连接挂起,从不显示在rabbitmq的一侧。 不知道docker或pika是否会有一些奇怪的事情发生,但值得一提的是,我的代码连接到一个不是docker容器的rabbitmq服务器。 我正在运行最新版本的OSX,并使用python 2.7和pika 0.10.0。 RMQ_URL = '0.0.0.0' HOST_QUEUE = 'snarfer' VHOST = 'beta' RMQ_PORT = 15677 ROUTING_KEY = 'snarfer.discovery' self.connection = pika.BlockingConnection(pika.ConnectionParameters( host=s.RMQ_URL, virtual_host=s.VHOST, port=s.RMQ_PORT)) ***编辑:添加凭据到ConnectionParameters什么也不做。

从Docker容器访问在本地机器上运行的rabbitmq

我想testing一个docker镜像,运行一个订阅rabbitmq队列的python脚本。 我在我的本地机器上运行rabbitmq,并且想要testing在同一台机器上运行的docker容器,并订阅当地的rabbimq服务器。 我希望脚本读取在docker run命令中设置的环境variables'QUEUE_IP'。 python脚本: #!/usr/bin/env python import pika host = os.environ.get('QUEUE_IP') connection = pika.BlockingConnection(pika.ConnectionParameters( host=host)) channel = connection.channel() channel.queue_declare(queue='hello') def callback(ch, method, properties, body): print(" [x] Received %r" % body) channel.basic_consume(callback, queue='hello', no_ack=True) print(' [*] Waiting for messages. To exit press CTRL+C') channel.start_consuming() 它不工作,如果QUEUE_IP = 127.0.0.1,我也尝试使用机器的本地IP地址,但我只得到 pika.exceptions.ProbableAuthenticationError 是否有任何简单的方法从docker集装箱访问本地rabbitmq?

由docker组成的RabbitMQ集群在不同的主机和不同的项目上组成

我有3个项目,部署在不同的主机上。 每个项目都有自己的RabbitMQ容器。 但是我需要用这3个主机创build集群,使用相同的虚拟主机,但不同的用户/login对。 我曾尝试过Swarm和覆盖networking,但是Swarm旨在运行独立容器,并且组成它不起作用。 另外,我曾尝试docker-compose包,但是这不是预期的工作:( 我认为这将是这样的工作 : 1)在pipe理器节点上创build覆盖networking 2)在每个组成文件中,我用覆盖networking扩展rabbitmq容器的networkingconfiguration。 3)他们按预期工作,我不发布到互联网rabbitmq端口。 任何想法,我怎么能做到这一点?

将新容器添加到现有群集(sworm)

我遇到了一个问题,试图实现在Docker中运行所有容器时将新容器添加到现有集群的最佳方法。 假设我有一个docker群,并且每当一个容器由于某种原因停止/失败时,群会产生新的容器,并期望它将自身添加到群集中。 我怎样才能让任何容器能够将自己添加到群集? 我的意思是,例如,如果我想创build一个RabbitMQ HA群集,我需要创build一个master,然后创buildslave,假设RabbitMQ(master或slave)的每个实例都是一个容器,现在让我们假设其中一个失败,我们有2个选项: 1)从属容器失败。 2)主容器失败。 通常情况下,一个有能力作为一个集群运行的服务,它也有能力选举一个新的领导者作为主,所以,假设这个scenerio在没有任何干预的情况下工作,如何将一个新的容器添加到群(使用docker群)将能够将自己添加到群集? 这里的问题是,新的容器不是每次都有新的参数创build,容器总是被创build,因为它是第一次部署,这意味着,我不能只是改变它的命令行参数,这是一个云,所以我不能硬编码一个IP使用。 这里有东西丢失。 也许试图在“docker Swarm”级别中声明一个“Service”,将使新的容器能够将自己添加到集群,而不需要知道集群中的其他机器。

用python在docker上设置rabbitMQ

我对docker相当陌生,我正在学习rabbitMQ。 到目前为止,我已经能够在我的ubuntu vm上以python libary pika的forms运行rabbitMQ。 这工作没有任何问题,但我现在把它放到docker工人的一个小应用程序,不起作用。 这个问题似乎是在设置和所有的方式失败了这一行的代码: connection = pika.BlockingConnection(pika.ConnectionParameters( host=HOST, port=80, credentials=credentials)) 正在导入的variables: USER = "test" PASS = "testpass1" HOST = "dockerhost" 文件: import pika from settings import USER, PASS, HOST def send(message): message = str(message) print 'trying: credentials = pika.PlainCredentials(username=USER, password=PASS)' try: credentials = pika.PlainCredentials(username=USER, password=PASS) except Exception: print 'Failed' print str(Exception) return […]