-2
RabbitMQ & python pika로 두 개의 호스트를 연결하려고합니다. 여기원격 RabbitMQ 서버에 연결하는 동안 AccessDeniedError
는 노동자입니다 :
#!/usr/bin/env python
import pika, time
NEW_TASK_HOST_IP = '192.168.0.2'
credentials = pika.PlainCredentials('login-to-remote', 'pass')
connection = pika.BlockingConnection(
pika.ConnectionParameters(host=NEW_TASK_HOST_IP))
channel = connection.channel()
channel.queue_declare(queue='task_queue', durable=True)
print(' [*] Waiting for messages. To exit press CTRL+C')
def callback(ch, method, properties, body):
ch.basic_ack(delivery_tag = method.delivery_tag)
channel.basic_qos(prefetch_count=1)
channel.basic_consume(callback,
queue='task_queue')
그리고 여기에 새 작업입니다 :
#!/usr/bin/env python
import pika, sys
WORKER_IP = '192.168.0.3'
credentials = pika.PlainCredentials('login-to-remote', 'pass')
connection = pika.BlockingConnection(pika.ConnectionParameters(
host=WORKER_IP, socket_timeout=300, credentials=credentials))
channel = connection.channel()
channel.queue_declare(queue='task_queue', durable=True)
message = ' '.join(sys.argv[1:]) or "Hello World!"
channel.basic_publish(exchange='',
routing_key='task_queue',
body=message,
properties=pika.BasicProperties(
delivery_mode = 2, # make message persistent
))
print(" [x] Sent %r" % message)
connection.close()
내가 명령으로 두 호스트에 두 명의 사용자를 만들었습니다
sudo rabbitmqctl add_user login-to-remote pass
을 때 내가 내가 가지고있는 무엇이든을 달리는 것을 시도하십시오 :
012 37,962,524,나는 두 방향에서 UDP와 TCP 모두 iperf
와 호스트 사이의 연결을 확인했습니다
iperf -s -p 5672
iperf -p 5672 -c 192.168.0.2
그래서 교통이 간다.
자, 그럼 문제가 될 수 있습니까?
예, 이것은 물론 그 문자열 대신 실제 IP가 있습니다. 명확성을 위해이 문자열을 IP로 변경합니다. – Kirill
@Kirill이 질문은 네트워크가 아니라 프로그래밍에 관한 것입니다. 방화벽 설정, 관련이있는 경우 포트 포워딩 등을 확인하십시오. – DeepSpace
RabbitMQ 포트에 대해 iperf와의 연결을 점검했는데 문제가 없습니다. – Kirill