파이션 코드를 사용한 RabbitMQ 메시지 큐의 간단한 테스트
RabbitMQ의 Consumer와 Publisher는 메시지 큐를 통해 데이터를 송수신하는 역할을 담당합니다.
- Consumer (소비자): RabbitMQ 큐에서 메시지를 수신하여 처리하는 역할을 담당합니다. Consumer는 큐에 연결되어 메시지를 받아들이고, 해당 메시지를 소비하여 필요한 로직을 수행합니다. Consumer는 메시지를 소비하면서 큐에서 메시지를 제거합니다.
- Publisher (발행자): RabbitMQ 큐로 메시지를 발행하는 역할을 담당합니다. Publisher는 큐에 연결하여 메시지를 발행하고, 해당 메시지를 큐에 전달합니다. 메시지는 큐에 저장되어 대기하며, Consumer가 이를 소비하여 처리합니다.
Consumer와 Publisher는 RabbitMQ 메시징 시스템의 핵심 구성 요소입니다. Consumer는 큐에 도착한 메시지를 읽어들여 실제 작업을 수행하고, Publisher는 메시지를 생성하여 큐에 보냅니다. 이를 통해 애플리케이션 간의 비동기 통신과 작업 로드 밸런싱을 구현할 수 있습니다.
Consumer와 Publisher는 RabbitMQ와 통신하기 위해 AMQP (Advanced Message Queuing Protocol)를 사용합니다. AMQP는 메시지 큐 시스템 간에 표준화된 프로토콜로, 메시지의 송수신을 안전하고 신뢰성 있게 처리할 수 있도록 지원합니다.
Consumer와 Publisher는 RabbitMQ의 주요 개념 중 하나이며, 메시지 큐 기반 애플리케이션을 구축하는 데 중요한 역할을 담당합니다.
파이션 코드를 사용하여 테스트 진행
pip 명령어가 없는 경우 아래와 같이 python3-pip 패키지를 설치합니다.
apt install -y python3-pip
pika 라이브러리 설치
pip install pika
Consumer 코드
vim consumer.py
import pika
def callback(ch, method, properties, body):
# 메시지 처리 로직을 작성합니다.
print("Received message:", body.decode())
# RabbitMQ 서버에 연결합니다.
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
# 큐를 생성합니다.
channel.queue_declare(queue='my_queue')
# 큐에서 메시지를 소비하는 콜백 함수를 등록합니다.
channel.basic_consume(queue='my_queue', on_message_callback=callback, auto_ack=True)
# 메시지를 계속해서 소비합니다.
print('Waiting for messages...')
channel.start_consuming()
publisher 코드
vim publisher.py
import pika
# RabbitMQ 서버에 연결합니다.
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
# 큐를 생성합니다.
channel.queue_declare(queue='my_queue')
# 메시지를 전송합니다.
message = 'Hello, RabbitMQ!'
channel.basic_publish(exchange='', routing_key='my_queue', body=message)
print("Message sent:", message)
# 연결을 닫습니다.
connection.close()
consumer 코드 실행
$ python3 consumer.py
Waiting for messages...
$ python3 consumer.py
Waiting for messages...
Received message: Hello, RabbitMQ!
Received message: Hello, RabbitMQ!
publisher 코드 실행
$ python3 publisher.py
Message sent: Hello, RabbitMQ!
위 예시 코드에서 localhost 부분은 RabbitMQ 서버의 호스트 주소로 변경해야 합니다. 또한 큐 이름은 사용자가 원하는 이름으로 변경할 수 있습니다. Consumer는 basic_consume 함수를 호출하여 메시지를 받아들이고, Publisher는 basic_publish 함수를 호출하여 메시지를 전송합니다.
이 코드를 실행하기 위해서는 pika 라이브러리가 설치되어 있어야 합니다. 필요한 경우, pip install pika 명령을 사용하여 라이브러리를 설치할 수 있습니다.
위 코드는 RabbitMQ 메시지 큐의 간단한 예시입니다. 실제 애플리케이션에 맞게 메시지 처리 로직을 작성하고, 오류 처리 및 예외 처리 등을 추가해야 합니다.
'리눅스' 카테고리의 다른 글
DNS SPF 란, SPF 설정하는 방법 (0) | 2023.06.10 |
---|---|
일반적으로 Git 리포지토리를 GitHub에 올리는 방법 (0) | 2023.06.09 |
RabbitMQ를 설치하고 테스트하는 방법 (0) | 2023.06.09 |
[draft] 우분투에서 sysstat 설치 및 sar 명령어 사용 방법 (0) | 2023.06.08 |
리눅스에서 좀비 프로세스를 종료하는 방법 (0) | 2023.06.08 |