메시지 큐는 서로 다른 구성 요소 또는 시스템 간의 비동기 통신 형태입니다. 이를 통해 응용 프로그램의 다른 부분 또는 전혀 다른 응용 프로그램 간에 메시지(또는 작업, 작업, 이벤트)을 보내고 받을 수 있습니다.
아래는 메시지 큐가 가지고 있는 다양한 종류의 큐입니다.
FIFO Queue (선입선출): 메시지는 받은 순서대로 처리됩니다. 첫 번째로 인큐된 메시지가 첫 번째로 디큐됩니다.
Priority Queue: 메시지에 우선순위가 할당되며, 높은 우선순위의 메시지가 낮은 우선순위의 메시지보다 먼저 처리됩니다.
Delay Queue: 메시지는 특정 지연 기간 후에 처리되도록 인큐됩니다. 이는 작업을 예약하거나 특정 메시지의 처리를 지연시키는 데 유용할 수 있습니다.
Topic-based Pub/Sub: 메시지는 특정 주제에 발행되고, 구독자는 특정 주제의 메시지를 수신하기 위해 구독할 수 있습니다.
Work Queue: 작업 큐 또는 작업 대기열로도 알려져 있으며, 작업이나 작업을 여러 워커에게 비동기적으로 처리하도록 인큐합니다. 워커들은 큐에서 사용 가능한 작업을 처리하기 위해 경쟁합니다.
Publish/Subscribe (Pub/Sub): 메시지는 채널에 발행되고 해당 채널에 구독한 모든 구독자에게 전달됩니다. 이를 통해 여러 구독자에게 메시지를 브로드캐스트할 수 있습니다.
우리가 사용할 큐는 work queue 입니다. 작업 큐에서 작업이나 작업은 여러 workers가 비동기적으로 처리하기 위해 인큐됩니다. 워커들은 큐에서 사용 가능한 작업을 가져와 처리하기 위해 경쟁합니다. 이 접근 방식은 작업 부하를 여러 워커에게 분산시키고 병렬 처리를 가능하게 합니다.