web-dev-qa-db-ja.com

pikaをrabbitMQリモートサーバーに接続する方法は? (python、pika)

私のローカルマシンでは、次のものを使用できます。

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))

適切な通信を確立するために両方のスクリプト(send.pyとrecv.py)に対して、しかし12.23.45.67から132.45.23.14までの通信を確立するのはどうですか? ConnectionParameters()が取るすべてのパラメーターについては知っていますが、ホストに何を渡すか、またはクライアントに何を渡すかがわかりません。誰かがホストスクリプトとクライアントスクリプトの例を挙げていただければ幸いです。

9
Eriel Marimon

http://pika.readthedocs.org/en/latest/modules/parameters.html を参照してください。ここには'rabbit-server1'IPのリモートホスト名を入力する必要があります。

guestアカウントはローカルホスト経由でのみ接続できることに注意してください https://www.rabbitmq.com/access-control.html

2
old_sound

最初のステップは、rabbitMQサーバーに別のアカウントを追加することです。 Windowsでこれを行うには...

  1. コマンドプロンプトウィンドウを開きます(Windowsキー-> cmd-> Enter)
  2. 「C:\ ProgramFiles\RabbitMQ Server\rabitmq_server-3.6.2\sbin」ディレクトリに移動します(「cd\ProgramFiles\RabbitMQ Server\rabbitmq_server-3.6.2\sbin」と入力してEnterキーを押します)
  3. 管理プラグインを有効にします(「rabbitmq-pluginsenablerabbitmq_management」と入力してEnterキーを押します)
  4. 管理コンソールのブラウザウィンドウを開き、管理セクションに移動します( http:// localhost:15672 /#/ users 資格情報 "guest"-"guest")
  5. 新しいユーザーを追加します(たとえば、「the_user」とパスワード「the_pass」
  6. そのユーザーに仮想ホスト「/」へのアクセス許可を付与します(ユーザーの名前をクリックしてから「アクセス許可の設定」をクリックします)

次のsend.pyの変更で行ったように接続情報を変更すると、成功するはずです。

#!/usr/bin/env python
import pika

credentials = pika.PlainCredentials('the_user', 'the_pass')
parameters = pika.ConnectionParameters('132.45.23.14',
                                   5672,
                                   '/',
                                   credentials)

connection = pika.BlockingConnection(parameters)

channel = connection.channel()

channel.queue_declare(queue='hello')

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

お役に立てれば

20
HyperActive