Information Security ˗ˋˏ ♡ ˎˊ˗

OS/OpenSource

[RabbitMQ] tutorial - "Hello world!" 실습 (python)

토오쓰 2021. 7. 12. 17:22

 

https://t-okk.tistory.com/169

 

[RabbitMQ] RabbitMQ 정의 및 설치방법(in Ubuntu)

오픈소스 RabbitMQ에 대한 정의 및 설치방법 정의 AMQP를 따르는 오픈소스 메시지 브로커 AMQP(Advanced Message Queuing Protocol, 어드밴스트 메시지 큐잉 프로토콜)는 메시지 지향 미들웨어를 위한 개방형

t-okk.tistory.com

설치 후 간단한 예제 "Hello World!"를 실습해보았다.

 

 

https://www.rabbitmq.com/getstarted.html에 나와있는 대표적인 예제

 

파이썬 파일을 이용하기 위해서 필요한 모듈 설치

apt-get install python3-pip
python -m pip install pika –upgrade

 

 

참고할만한 명령어

RabbitMQ에 포함된 큐와 그 안에 있는 메시지 수 확인 가능

sudo rabbitmqctl list_queues

 

 

1번 Hello World!

단일 메시지를 보내는 Producer

메시지를 받고 이를 출력하는 Consumer

메시지를 보관하는 Queue

 

 

 

[send.py]

해당 파일을 통해서 하나의 메시지를 큐에 보낸다.

첫 번째로 RabbitMQ 서버와 연결을 설정한다.

 

코드에 대한 설명

#!/usr/bin/env python
import pika
 
#RabbitMQ 서버에 연결
#connection과 channel를 생성
connection = pika.BlockingConnection(
    pika.ConnectionParameters(host='localhost'))
channel = connection.channel()
 
#queue_declare: channel를 통해 queue 선언(declare)
channel.queue_declare(queue='hello')
 
#channel의 publish(sending)
#routing_key: Queue 이름
channel.basic_publish(exchange='', routing_key='hello', body='Hello World!')
print(" [x] Sent 'Hello World!'")
 
#connection 연결 종료
connection.close()

 

 

[receive.py] 

큐에서 메시지를 받아 화면에 출력한다.

첫 번째로 RabbitMQ 서버와 연결을 설정한다.

 

코드에 대한 설명

#!/usr/bin/env python
import pika, sys, os

def main():
    connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
    channel = connection.channel()

    #queue를 선언(declare)
    channel.queue_declare(queue='hello')

    #Receiving 받을 함수 handler 정의
    #callback 함수는 pika 라이브러리에 의해 호출
    def callback(ch, method, properties, body):
        print(" [x] Received %r" % body.decode())

    #Queue가 'hello'의 consuming 설정
    channel.basic_consume(queue='hello', on_message_callback=callback, auto_ack=True)

    #consuming start
    print(' [*] Waiting for messages. To exit press CTRL+C')
    channel.start_consuming()

if __name__ == '__main__':
    try:
        main()
    except KeyboardInterrupt:
        print('Interrupted')
        try:
            sys.exit(0)
        except SystemExit:
            os._exit(0)

 

결과

[send.py]

[receive.py]

 

 

참고

우분투에서 설치방법

https://kamang-it.tistory.com/entry/AMQPRabbitMQRabbitMQ%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0%EC%99%80-%EC%84%A4%EC%B9%98%EB%B0%A9%EB%B2%95-1

python 예제

https://blog.storyg.co/rabbitmqs/tutorials/python/01-hellowolrd

'OS > OpenSource' 카테고리의 다른 글

[RabbitMQ] RabbitMQ 정의 및 설치방법(in Ubuntu)  (286) 2021.07.12