【问题标题】:How to use AMQP python client for ActiveMQ如何为 ActiveMQ 使用 AMQP python 客户端
【发布时间】:2019-07-28 22:54:55
【问题描述】:

我使用amqp客户端连接ActiveMQ代理。

import amqp

USER = "guest"
PASSWORD = "guest"
HOST = 'localhost'
PORT = '5672'

host = HOST + ":" + PORT

conn = amqp.connection.Connection(host=host,userid=USER,password=PASSWORD,login_method='AMQPLAIN',ssl=True)
conn.connect()

出现错误:OSError:服务器意外关闭连接

【问题讨论】:

  • 我是 pika.readthedocs.io/en/stable 用于 amqp 消息传递的 pika 库的忠实粉丝。但我假设您的本地 amqp 未启动或可能无法正常运行或使用错误的端口。
  • 两个程序支持的amqp版本不同。

标签: python activemq amqp


【解决方案1】:

Pika 使用 AMQP 0.9,而 ActiveMQ 使用 1.0。这些协议不兼容。

阅读Pika docs的开头。

阅读ActiveMQ AMQP docs中的第一行。

【讨论】:

    【解决方案2】:

    看起来连接参数默认为正确的设置。

    试试吧

    import amqp
    
    USER = "guest"
    PASSWORD = "guest"
    HOST = '/'
    PORT = '5672'
    
    host = HOST + ":" + PORT
    
    conn = amqp.connection.Connection()
    conn.connect()
    print(conn.is_closing)
    

    如果你看一下 Connection() 的实现,它是

    def __init__(self, host='localhost:5672', userid='guest', password='guest',
                     login_method=None, login_response=None, 
    

    ...

    所以它默认为正确的东西并使用 rabbit mq 在本地为我运行。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2014-12-12
      • 2011-01-12
      • 2017-02-21
      • 2011-07-26
      • 2011-01-28
      • 2011-03-20
      • 2011-02-12
      • 1970-01-01
      • 2014-02-11
      相关资源
      最近更新 更多