Notice
Recent Posts
Recent Comments
Link
SeouliteLab
파이썬으로 메시지 큐 구현하기: pika 라이브러리 활용하기 본문
메시지 큐(Message Queue)는 분산 시스템에서 서로 다른 컴포넌트 간의 비동기 통신을 위해 사용되는 소프트웨어 통신 기술입니다. 파이썬에서는 RabbitMQ와 같은 메시지 브로커를 다루기 위해 pika
라이브러리를 사용할 수 있습니다. 이를 통해 메시지 큐를 생성하고 메시지를 전송하고 수신하는 방법을 알아보겠습니다.
예제 1: RabbitMQ 서버에 연결하기
import pika
# RabbitMQ 서버 연결
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
# 큐 선언
channel.queue_declare(queue='hello')
# 메시지 전송
channel.basic_publish(exchange='', routing_key='hello', body='Hello, RabbitMQ!')
print("메시지 전송 완료")
# 연결 종료
connection.close()
위 예제는 pika
를 사용하여 RabbitMQ 서버에 연결하고 메시지를 전송하는 방법을 보여줍니다. BlockingConnection
을 사용하여 RabbitMQ 서버에 연결하고, channel.queue_declare()
를 사용하여 큐를 선언한 후, channel.basic_publish()
를 사용하여 메시지를 전송합니다.
예제 2: 메시지 수신하기
import pika
# RabbitMQ 서버 연결
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
# 큐 선언
channel.queue_declare(queue='hello')
# 메시지 수신 콜백 함수
def callback(ch, method, properties, body):
print("메시지 수신:", body)
# 큐에 대기
channel.basic_consume(queue='hello', on_message_callback=callback, auto_ack=True)
print("메시지 수신 대기 중...")
# 메시지 루프 시작
channel.start_consuming()
위 예제는 pika
를 사용하여 RabbitMQ 서버로부터 메시지를 수신하는 방법을 보여줍니다. basic_consume()
메서드를 사용하여 큐에 대기하고, 수신된 메시지는 지정한 콜백 함수에 의해 처리됩니다.
예제 3: Topic Exchange를 활용한 메시지 전송
import pika
# RabbitMQ 서버 연결
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
# Exchange 선언
channel.exchange_declare(exchange='logs', exchange_type='topic')
# 메시지 전송
channel.basic_publish(exchange='logs', routing_key='info', body='Log message: INFO')
print("메시지 전송 완료")
# 연결 종료
connection.close()
위 예제는 pika
를 사용하여 RabbitMQ의 Topic Exchange를 활용하여 메시지를 전송하는 방법을 보여줍니다. exchange_declare()
를 사용하여 Exchange를 선언하고, basic_publish()
를 사용하여 메시지를 특정 라우팅 키로 전송합니다.
pika
라이브러리를 사용하면 파이썬으로 RabbitMQ를 손쉽게 다룰 수 있습니다.