Antrean jarak jauh pengirim.py Python RabbitMQ

Saya mencoba mengirim pesan ke antrian kelinci mq di mesin jarak jauh. Saya mengikuti tutorial ini.

Program untuk terhubung ke localhost berfungsi dengan baik. Namun program untuk menyambung ke antrian jarak jauh tidak berfungsi. Kesalahannya pasti terletak saat membuat koneksi, karena saya tidak dapat melihat pesan log 'koneksi dibuat'.

Saya telah memverifikasi bahwa saya dapat mengakses remotehost, port dari mesin saya dan kredensialnya benar. saya dapat mengakses

http://remote-host:15672/#/queues

Apakah saya melewatkan sesuatu yang jelas?

Lokal

#!/usr/bin/env python
import pika

connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
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()

Jarak jauh

#!/usr/bin/env python
import pika

# this queue is the destination queue
credentials = pika.PlainCredentials('xxxx', 'xxxx')
parameters = pika.ConnectionParameters('remote-host', 15672, '/', credentials)
connection = pika.BlockingConnection(parameters)
print " connection created"

channel = connection.channel()
channel.queue_declare(queue='hello')

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

Pembaruan Ini adalah kesalahan yang saya dapatkan saat mencoba menyambung.

ERROR:pika.adapters.base_connection:Socket Error on fd 3: 54 Traceback (most recent call last): File "remote-sender.py", line 10, in connection = pika.BlockingConnection(parameters) File "/Library/Python/2.7/site-packages/pika/adapters/base_connection.py", line 61, in init super(BaseConnection, self).init(parameters, on_open_callback) File "/Library/Python/2.7/site-packages/pika/connection.py", line 513, in init self._connect() File "/Library/Python/2.7/site-packages/pika/connection.py", line 804, in _connect self._adapter_connect() File "/Library/Python/2.7/site-packages/pika/adapters/blocking_connection.py", line 146, in _adapter_connect self.process_data_events() File "/Library/Python/2.7/site-packages/pika/adapters/blocking_connection.py", line 88, in process_data_events if self._handle_read(): File "/Library/Python/2.7/site-packages/pika/adapters/blocking_connection.py", line 184, in _handle_read super(BlockingConnection, self)._handle_read() File "/Library/Python/2.7/site-packages/pika/adapters/base_connection.py", line 300, in _handle_read return self._handle_error(error) File "/Library/Python/2.7/site-packages/pika/adapters/base_connection.py", line 264, in _handle_error self._handle_disconnect() File "/Library/Python/2.7/site-packages/pika/adapters/blocking_connection.py", line 181, in _handle_disconnect self._on_connection_closed(None, True) File "/Library/Python/2.7/site-packages/pika/adapters/blocking_connection.py", line 235, in _on_connection_closed raise exceptions.AMQPConnectionError(*self.closing) pika.exceptions.AMQPConnectionError: (0, '')


person ravindrab    schedule 10.11.2014    source sumber
comment
Apakah Anda terhubung dengan akun tamu? Akun tamu hanya dapat terhubung melalui localhost. rabbitmq.com/access-control.html   -  person kponz    schedule 10.11.2014
comment
@kponz Tidak. Tidak dengan akun tamu   -  person ravindrab    schedule 10.11.2014


Jawaban (2)


Gunakan port 5672 dan bukan 15672! Ini seharusnya berhasil!

person Gabriele Santomaggio    schedule 10.11.2014
comment
Saya melakukan itu. Tapi saya mendapat hasil yang sama. Saya memverifikasi bahwa saya dapat mengakses port itu. Memperbarui pertanyaan dengan kesalahan yang saya dapatkan. Adakah yang tahu apa masalahnya? Terima kasih! - person ravindrab; 10.11.2014
comment
@ravindrab, maaf saya memodifikasi port yang benar adalah 5672! - person Gabriele Santomaggio; 10.11.2014
comment
Saya mencoba dengan port yang benar 5672. Memperbarui jawabannya dengan kesalahan yang saya lihat. - person ravindrab; 10.11.2014
comment
Nah, jika ini bukan masalah firewall, Anda harus memeriksa log RabbitMQ untuk melihat apakah koneksi sampai ke RabbitMQ. Saya menyarankan untuk membaca postingan ini: github.com/pika/pika/issues/266 - person Gabriele Santomaggio; 10.11.2014
comment
masalahnya saya belum menentukan vhostnya. parameters = pika.ConnectionParameters('remote-host', 5672, 'product', credentials) berhasil. - person ravindrab; 10.11.2014

Host virtual harus ditentukan dengan benar. Dalam kasus saya, antrian saya milik host virtual. Tapi saya mencoba menyambung ke '/'. Setelah menentukan host virtual (produk di bawah), saya berhasil terhubung.

Saya merasa tautan ini bermanfaat.

#!/usr/bin/env python
import pika

# this queue is the destination queue
credentials = pika.PlainCredentials('xxxx', 'xxxx')
parameters = pika.ConnectionParameters('remote-host', 5672, 'product', credentials)
connection = pika.BlockingConnection(parameters)
print " connection created"

channel = connection.channel()
channel.queue_declare(queue='hello')

channel.basic_publish(exchange='helloEx', routing_key='', body='Hello World!')
print " [x] Sent 'Hello World!'"
connection.close()
person ravindrab    schedule 10.11.2014
comment
Saya mencoba menggunakan RabbitMQ di localhost saya, tetapi mengalami kesulitan, dapatkah Anda memberi saya petunjuk mengenai hal itu - person Pankaj Nimgade; 18.11.2014
comment
apa masalah spesifik Anda? - person ravindrab; 22.01.2015