Tag: rabbitmq

Docker中的Rabbitmq IP地址和Redis IP地址

在Docker之外,redis和rabbitmq的ip地址在我的django应用程序中的ubuntu 16.04环境中设置为'localhost'。 但是,我正在尝试将我的Web服务迁移到docker中。 我使用Docker的官方存储库redis和rabbitmq。 在我的Django settings.py ,我必须声明redis和rabbitmq的IP地址,以便在我的应用程序中连接到它们。 我没有任何线索如何确定他们在Docker内的IP地址。 在docker-compose.yml中,configuration如下: version: '2' services: # RabbitMQ rabbit: hostname: my-rabbit image: rabbitmq:3 ports: – "5672:5672" # we forward this port because it's useful for debugging – "15672:15672" # here, we can access rabbitmq management plugin #Redis redis: image: redis:latest #Data Processing WS web: build: . command: python manage.py […]

在Docker容器中阻塞Celery task.delay

我在我的Django项目中使用芹菜。 它适用于我的MacBook和CentOS虚拟机。 当我在add.delay容器中运行它时,包含add.delay ( add是一个任务)方法的请求始终被阻塞。 我在github上创build了一个演示项目: https : //github.com/fengyouchao/proj_test 我的任务: @shared_task def add(x, y): return x + y 我的看法: def index(request): a = int(request.GET.get('a', 1)) b = int(request.GET.get('b', 2)) add.delay(a, b) return HttpResponse("Hello world") def hello(request): return HttpResponse("hello") 在演示项目中,我在docker-compose.yml中创build了三个服务: web – 运行“manage.py runserver 0.0.0.0:8000”的服务 芹菜 – 运行“芹菜”的服务 rabbitmq – 运行rabbitmq-server的服务 运行服务 docker-compose up testing curl […]

如何build立RabbitMQ与PHP代码连接,而DB,PHP等作为docker集装箱运行

我有一个使用docker-compose.yml运行多个容器的应用程序。 还有一个自定义目录(其中包含我的自定义代码)映射到docker-compose.yml中的docker容器。 有了这个自定义目录,我需要使用RabbitMQ。 所以问题是如何将它与完整的应用程序结合,因为DB现在是一个单独的容器。 我明白,有一种方法可以使用RabbitMQ容器并修改它的yml。 对我来说这不是首选的解决scheme。 请提出其他方法来实现它。 预先感谢您的帮助。

为Docker容器指定一个固定的IP地址

我使用部署在Docker容器中的pika + rabbitMQ为我正在开发的分布式系统提供消息传递基础结构。 我已经安装了相关的软件,但是,我需要一种方法来给我的RabbitMQ服务添加一个静态IP地址(请参阅下面的代码片段) – 但似乎无法做到这一点 – 似乎这不是一件容易的事情要做(甚至可能做不到) 。 我需要一个静态IP地址,以便下面的代码可以工作。 connection = pika.BlockingConnection(pika.ConnectionParameters(host ='172.17.0.2')) 如果真的不可能将一个静态地址添加到正在运行的容器 – 也许有一种方法可以查询docker(我想我记得看到一个inspect命令的标志,允许检索邮件容器/服务的IP地址,然后我可以通过shell脚本传递给生产者/消费者。 话虽如此,后一种方法对于重新启动(消息传递机器)等是不健壮的,所以如果可能的话,我宁愿使用静态IP解决scheme。

docker上不能停留的货柜 – 组成

编写一个简单的生产者/消费者RabbitMQ的例子,我不能让我的消费者容器继续在docker-compose up -d运行docker-compose up -d 。 它应该在无限循环上运行。 正如你所看到的,当运行docker-compose run consumer以及docker-compose run -d consumer时,可以使其保持docker-compose run -d consumer app.py #!/usr/bin/env python import argparse import pika import json connection = None channel = None TYPES = ['producer', 'consumer'] def producer(): global connection, channel connection = pika.BlockingConnection(pika.ConnectionParameters('rabbit')) channel = connection.channel() channel.queue_declare(queue='hello') # Currently a python dict data = { […]

RabbitMQ在Windows Docker Contaier中启动缓慢

这是我的dockerfile FROM microsoft/windowsservercore # rabbitmq version used in download url and to rename folder extracted from zip file ENV rabbitmq_version "3.6.11" #download erlang and RabbitMQ ADD "http://erlang.org/download/otp_win64_19.3.exe" "erlang_install.exe" ADD "https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.11/rabbitmq- server-windows-3.6.11.zip" "rabbitmq.zip" # erlang will install to this location and rabbitmq will use this environment variable to locate it ENV ERLANG_HOME c:\\erlang # setup powershell […]

无法在Docker文件中添加rabbitmq用户

我尝试添加一个rabbitmq用户,当我从图像运行一个docker容器,但它抱怨节点已closures: Error: unable to connect to node rabbit@3af546685019: nodedown DIAGNOSTICS =========== attempted to contact: [rabbit@3af546685019] rabbit@3af546685019: * connected to epmd (port 4369) on 3af546685019 * epmd reports: node 'rabbit' not running at all no other nodes on 3af546685019 * suggestion: start the node current node details: – node name: 'rabbitmq-cli-55@3af546685019' – home dir: /var/lib/rabbitmq – […]

RabbitMQ由于连接和断开而被淹没

我有一个非常奇怪的问题,我的rabbitMQ像下面那样得到一个充斥着的日志,如毫秒: =WARNING REPORT==== 12-Dec-2017::11:52:44 === closing AMQP connection <0.27756.1813> (10.0.1.44:57706 -> 10.0.1.33:5672, vhost: 'peter1_vhost', user: 'peter1'): client unexpectedly closed TCP connection =INFO REPORT==== 12-Dec-2017::11:52:44 === connection <0.27588.1813> (10.0.1.44:57710 -> 10.0.1.33:5672): user 'peter1' authenticated and granted access to vhost 'peter1_vhost' =WARNING REPORT==== 12-Dec-2017::11:52:44 === closing AMQP connection <0.27562.1813> (10.0.1.44:57708 -> 10.0.1.33:5672, vhost: 'peter1_vhost', user: 'peter1'): client […]

特定于副本的Docker堆栈/组合configuration

我试图运行一个使用Docker堆栈/撰写文件的RabbitMQ集群。 不幸的是,这意味着我不能使用replicasfunction来扩大或缩小容器的数量,我不得不使用多个服务,如下所示: version: '3.3' services: rabbit_node_1: image: rabbitmq:3.7.0-management-alpine environment: – RABBITMQ_ERLANG_COOKIE=foo hostname: rabbit_node_1 ports: – "15672:15672" – "5672:5672" networks: – myoverlay tty: true rabbit_node_2: image: rabbitmq:3.7.0-management-alpine environment: – RABBITMQ_ERLANG_COOKIE=foo hostname: rabbit_node_2 depends_on: – rabbit_node_1 ports: – "15673:15672" – "5673:5672" networks: – myoverlay tty: true 服务之间的唯一区别是hostname ,我正在提供一个自定义configuration文件,如下所示: [ { rabbit, [ {cluster_nodes, {['rabbit@rabbit_node_1', 'rabbit@rabbit_node_2'], disc}}, { […]

与RabbitMQ断开连接后,Apache进程不会死亡

我试图在我的项目中使用服务器端事件机制。 (这就像长期投票类固醇) 从“ 从服务器发送事件 ”字幕的例子工作得很好。 几秒钟后,断开连接,apache进程被终止。 这种方法工作正常。 但! 如果我尝试使用RabbitMQ ,则在浏览器从服务器( es.close() )断开连接后,Apache不会导致进程中断。 并且进程保持原样并在docker容器重新启动后才被杀死。 connection_aborted和connection_status根本不起作用。 connection_aborted仅返回0 ,connection_status即使在断开CONNECTION_NORMAL后也返回CONNECTION_NORMAL 。 只有当我使用RabbitMQ时才会发生。 没有RMQ这个function运作良好。 ignore_user_abort(false)也不起作用。 代码示例: <?php use PhpAmqpLib\Channel\AMQPChannel; use PhpAmqpLib\Connection\AbstractConnection; use PhpAmqpLib\Exception\AMQPTimeoutException; use PhpAmqpLib\Message\AMQPMessage; class RequestsRabbit { protected $rabbit; /** @var AMQPChannel */ protected $channel; public $exchange = 'requests.events'; public function __construct(AbstractConnection $rabbit) { $this->rabbit = $rabbit; } public […]