当前位置: 首页 > 知识库问答 >
问题:

不同机器上的RabbitMQ代理

长孙星汉
2023-03-14

rabbitMQ教程部分中的hello world示例只要求使用不同机器的ip更改主机名。但这对我不起作用。我已尝试将外部IP地址绑定到Rabbit MQ服务器​ 但这不起作用。我还需要对配置文件或代码执行其他操作吗?

这是发送代码

#!/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

我感谢你们花时间帮助我。

共有2个答案

壤驷心思
2023-03-14

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

 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))
钱锦
2023-03-14

问题是新的rabbitmq访问控制策略

请阅读:RabbitMQ客户端无法连接到远程RabbitMQ服务器

或者阅读以下内容:新安装后无法访问RabbitMQ web管理界面

 类似资料:
  • 水槽代理1没有连接到水槽代理2。原因可能是什么? 我正在使用Flume使用2代理将日志文件流式传输到HDFS。第一个代理位于存在日志文件的源机器上,而第二个代理位于安装Hadoop的机器上(IP地址10.10.201.40)。 第一个代理(flume-src-agent.conf)的配置文件如下: 第二个代理(flume-trg-agent.conf)的配置文件如下: 当第一个代理运行时,我收到以

  • 问题内容: 我在许多不同的物理服务器上都有一个大型的分布式程序,每个程序都产生许多线程,每个线程在其操作中都使用许多通用资源池中的内容。 目标是在所有操作中平均利用池。有时,通过查看资源池上的快照来查看它在那一刻正在获得的片段,看起来并没有那么随机(实际上可能是,但是很难确定和找出来)。 有没有比它更好且表现同样好(至少没有差很多)的东西? 问题答案: 是基于,它基于线性同余生成器。这意味着它的随

  • 这是代码: 如果我在我的机器()或这里()上尝试: 相反,这里(): 这是不同的。这是由于机器厄普西隆?还是编译器精度标志?还是不同的评估? 造成这种漂移的原因是什么?问题似乎出现在函数中(因为其他值似乎相同)。

  • 本文向大家介绍Elixir连接不同机器上的节点,包括了Elixir连接不同机器上的节点的使用技巧和注意事项,需要的朋友参考一下 例子 在一个IP地址上启动命名进程: 在另一个IP地址上启动另一个命名进程:            

  • 我很难理解RabbitMQ的基本概念。我发现在线文档并不十分清楚。 到目前为止,我理解了什么是通道、队列、绑定等。 但如何实现以下用例: 用例:发件人以不同的主题发布到一个交易所。在接收者方面,根据主题,应该通知不同的接收者。 因此,通过主题交换,以下内容应该是可行的: 创建频道 我的困难在于回调与通道相关,而与队列或队列绑定无关。我不能百分之百确定我是否在这里。 这就是我的问题:为了有多个回调,

  • 我有下面的代码来定位页面上的一个元素。 driver.findElement(by.xpath(“//div[text()='add']”)).click(); 上面的代码在 机器1:Windows 7 64位,Firefox浏览器,selenium-java-2.45.0 但在运行时单击另一个web元素