【问题标题】:RabbitMQ brokers on different machines不同机器上的 RabbitMQ 代理
【发布时间】:2021-08-15 21:20:15
【问题描述】:

rabbitMQ 教程部分中的hello world example 要求将主机名更改为不同机器的 ip。但这对我不起作用。我努力了 Binding external IP address to Rabbit MQ server​ 但这没有用。我还需要对配置文件或代码做些什么吗?

这里是发送代码

#!/usr/bin/env python
import pika

connection = pika.BlockingConnection(pika.ConnectionParameters(
    host='ip_address'))
channel = connection.channel()

channel.queue_declare(queue='hello')

channel.basic_publish(exchange='',
                  routing_key='hello',
                  body='Hello World!')
print " [x] Sent 'Hello World!'"
connection.close()

还有我在另一台机器上运行的接收代码

#!/usr/bin/env python
import pika

connection = pika.BlockingConnection(pika.ConnectionParameters(
    host='ip_address'))
channel = connection.channel()

channel.queue_declare(queue='hello1')

print ' [*] Waiting for messages. To exit press CTRL+C'

def callback(ch, method, properties, body):
    print " [x] Received %r" % (body,)

channel.basic_consume(callback,
                  queue='hello',
                  no_ack=True)

channel.start_consuming()

我得到的错误是

No handlers could be found for logger "pika.adapters.base_connection"
Traceback (most recent call last):

File "send.py", line 25, in <module>
'ip_address'))
 File "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py",    line 107, in __init__
   super(BlockingConnection, self).__init__(parameters, None, False)
 File "/usr/local/lib/python2.7/dist-packages/pika/adapters/base_connection.py", line 62, in __init__
on_close_callback)
 File "/usr/local/lib/python2.7/dist-packages/pika/connection.py", line 590, in __init__
self.connect()
 File "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 206, in connect
   if not self._adapter_connect():
 File "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 275, in _adapter_connect
raise exceptions.AMQPConnectionError(1)
pika.exceptions.AMQPConnectionError: 1

感谢你们花时间帮助我。

【问题讨论】:

  • 欢迎来到 Stack Overflow。阅读stackoverflow.com/help/how-to-ask,了解如何提出一个好问题。我建议发布一些代码或提供有关您已经尝试过的内容以及遇到的问题的更多详细信息。您的问题过于宽泛,并假设人们完全了解您正在谈论的教程
  • 知道了!这是配置设置。对于来宾用户,它仅适用于本地主机!谢谢!气体
  • 欢迎您@user2580202!我为未来的读者报告答案

标签: python rabbitmq


【解决方案1】:
【解决方案2】:

我必须在 2 台机器的本地实现上做一些差异化的事情,也许其中一些可以帮助你: 在服务器上 !important: 将你的节点从配置文件 rabbitmq-env.conf 更改为在机器的网络 ip 上运行 之后重启rabbitmq

 brew services stop rabbitmq 
 brew services start rabbitmq

*你可以找到rabbitmq配置文件

find / -name rabbitmq-env.conf

在项目中:

credentials = pika.PlainCredentials(env.RABBITMQ_USER, env.RABBITMQ_PASSWORD)
    connection = pika.BlockingConnection(pika.ConnectionParameters(env.RABBITMQ_IP, port=env.RABBITMQ_PORT, virtual_host='/', credentials=credentials))

【讨论】:

    猜你喜欢
    • 2015-02-19
    • 2019-11-30
    • 1970-01-01
    • 1970-01-01
    • 2015-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多