blog

MQ: 토픽과 큐의 관계

요약\n토픽과 대기열 사이에는 일대다 관계가 있습니다. 즉, 하나의 토픽에 여러 개의 대기열이 포함될 수 있습니다.\n한 토픽에서 제작자는 토픽에 메시지를 게시하고 토픽 이름을 지...

Oct 8, 2025 · 3 min. read
シェア

요약

topic와 큐는 일대다 관계로, 즉 하나의 토픽에 둘 이상의 큐가 포함될 수 있습니다.
토픽에서 프로듀서는 토픽에 메시지를 게시하고 토픽 이름을 지정합니다.
구독자는 주제를 구독하여 해당 주제에서 데이터를 수신하고 사용할 수 있습니다.
메시지가 모든 구독자에게 브로드캐스트되면 해당 토픽의 모든 구독자가 동일한 메시지를 받게 됩니다.
대기열에서 제작자는 대기열에 메시지를 게시하고 가입자는 해당 대기열에서 메시지를 받습니다.
메시지를 보낼 때 작성자가 토픽의 라우팅 정보에 따라 메시지를 보낼 큐를 선택하므로 사용자는 큐가 아닌 토픽만 지정하면 됩니다.
소비자가 메시지를 구독할 때 부하 분산 정책에 따라 구독할 대기열도 결정합니다.
MQ에서는 토픽 또는 큐를 사용하여 게시/구독 모드 또는 큐 모드를 구현할 수 있습니다.
게시/구독 패턴에서는 게시자가 토픽에 메시지를 게시하면 해당 토픽의 모든 구독자가 동일한 메시지를 받습니다;
큐 패턴에서는 게시자가 큐에 메시지를 보내고 해당 큐에 가입한 각 구독자가 큐에서 해당 메시지를 가져와 처리하는 반면, 게시-구독에서는 게시자가 큐에 메시지를 보냅니다.

게시-구독과 대기열의 차이점

메시지 큐에서 게시-구독 모드와 큐 모드는 서로 다른 두 가지 메시징 모드이며, 두 모드 간에는 몇 가지 차이점이 있습니다.
1. **메시지가 전달되는 방법**게시-구독 패턴에서는 메시지 발신자가 하나 이상의 토픽에 메시지를 게시하고 수신자가 해당 토픽을 구독하여 메시지를 수신합니다. 이 패턴에서는 메시지 전달이 브로드캐스트되므로 한 명의 게시자가 보낸 메시지를 여러 명의 가입자가 받을 수 있습니다.
1. **메시지 처리**대기열 패턴에서는 메시지 생산자가 하나 이상의 대기열에 메시지를 보내면 소비자들이 이 대기열에서 메시지를 가져와서 처리합니다. 일반적으로 대기열당 메시지를 처리하는 소비자는 한 명뿐이지만 동일한 대기열을 수신하는 소비자는 여러 명일 수 있습니다.
1. **메시지 순서**게시-구독 패턴에서는 여러 명의 가입자가 동시에 메시지를 받을 수 있고 특정 순서가 보장되지 않으므로 메시지의 전달이 순서가 정해지지 않습니다. 대기열 패턴에서는 소비자가 대기열에 표시되는 순서대로 메시지를 하나씩 처리하므로 메시지가 순서대로 처리됩니다.
1. **로드 밸런싱**게시-구독 모드에서 부하 분산은 일반적으로 구성된 정책에 따라 서로 다른 가입자에게 메시지를 보내는 메시지 브로커에 의해 자동으로 처리됩니다. 큐 모드에서는 로드 밸런싱이 애플리케이션 수준에서 구현됩니다(예: 여러 소비자가 동시에 동일한 큐를 수신하는 경우).
1. **메시지 소비**게시-구독 패턴에서는 각 구독자가 독립적으로 메시지를 소비할 수 있으며 비동기적으로 메시지를 처리할 수 있습니다. 대기열 패턴에서는 소비자는 선입 선출 원칙을 따르고 대기열에 표시되는 순서대로 메시지를 소비해야 합니다.
요약하면, 게시-구독과 큐 패턴은 메시징에서 서로 다른 특성과 적용 시나리오를 가지고 있습니다.
게시-구독 패턴은 여러 가입자에게 메시지를 브로드캐스트해야 하는 시나리오에서 사용되는 반면, 큐 패턴은 메시지를 질서 있고 안정적인 방식으로 처리해야 하는 시나리오에서 사용됩니다.
실제로는 구체적인 필요에 따라 적절한 메시징 모델을 선택해야 합니다.
Read next