Azure Service Bus는 Microsoft Azure의 매니지드 메시징 서비스로, 분산 시스템 간의 안정적이고 신뢰할 수 있는 메시징 기능을 제공합니다. 다양한 애플리케이션 및 서비스 간의 통신, 데이터 교환, 이벤트 트리거 등을 위해 사용됩니다.
Azure Service Bus의 주요 특징과 기능은 다음과 같습니다:
- 메시지 큐: Service Bus는 메시지 큐를 통해 메시지를 안전하게 보관하고 전송할 수 있습니다. 메시지를 보내는 애플리케이션은 메시지 큐에 메시지를 전송하고, 수신 애플리케이션은 해당 큐에서 메시지를 수신하여 처리할 수 있습니다. 이를 통해 메시지의 비동기 처리와 시스템 간의 결합도를 낮출 수 있습니다.
- 주제 및 구독: Service Bus는 메시지를 토픽(주제)으로 분류하고, 해당 주제에 대해 여러 개의 구독자(수신 애플리케이션)를 등록할 수 있습니다. 메시지를 발행하는 애플리케이션은 주제에 메시지를 전송하고, 구독자는 해당 주제를 구독하여 메시지를 수신할 수 있습니다. 이를 통해 푸시 기반의 이벤트 기반 아키텍처를 구축할 수 있습니다.
- 타임아웃 및 대기열: Service Bus는 메시지의 수신과 처리 시간을 제어하기 위해 타임아웃 및 대기열 기능을 제공합니다. 메시지가 일정 시간 동안 처리되지 않으면 대기열에 유지되며, 타임아웃이 경과하면 메시지를 다시 사용 가능한 상태로 전환합니다.
- 푸시 알림: Service Bus는 푸시 알림 기능을 제공하여 메시지의 도착 및 이벤트 발생을 구독자에게 실시간으로 통보할 수 있습니다. 이를 통해 실시간 상호작용 및 알림 기능을 구현할 수 있습니다.
- 암호화 및 보안: Service Bus는 데이터의 암호화 및 보안을 위한 기능을 제공합니다. 데이터 전송 중에는 SSL/TLS를 사용하여 통신을 보호하고, 데이터 저장 중에는 Azure Key Vault를 통해 암호화 키를 안전하게 관리할 수 있습니다.
Azure Service Bus에서 Queue, Topic, Relay는 메시징 및 통신 시나리오에서 사용되는 세 가지 주요 개념입니다. 아래에서 각각의 의미, 특징 및 차이점은 다음과 같습니다.
Queue (큐)
Queue는 메시지를 보내는 측과 받는 측 간의 1:1 통신을 위한 메시지 큐입니다. 메시지는 보낸 순서대로 큐에 저장되고, 받는 측은 큐에서 메시지를 읽어와 처리합니다.
- Point-to-Point 통신: Queue는 보내는 측과 받는 측 간의 1:1 통신을 위해 사용됩니다. 메시지는 큐에 순서대로 들어오고, 받는 측에서 하나의 메시지를 처리하면 해당 메시지는 큐에서 제거됩니다.
- 메시지 순서 보장: 큐에 들어온 순서대로 메시지가 처리되기 때문에 메시지의 순서를 보장할 수 있습니다.
- 기본적인 메시지 유지 기간: 큐에 저장된 메시지는 일정 기간 동안 유지됩니다. 수신자가 메시지를 받지 않으면 일정 시간 후에 메시지가 자동으로 삭제됩니다.
- 메시지 처리 실패 시 재시도: 수신자가 메시지 처리를 실패하면 Service Bus는 메시지를 다시 전송하여 재시도할 수 있도록 지원합니다.
Topic (주제)
Topic은 메시지를 발행하고 여러 개의 구독자가 해당 메시지를 구독하여 처리하는 Publish/Subscribe 통신 모델을 지원합니다.
- Publish/Subscribe 통신: Topic은 보내는 측이 메시지를 발행하고, 여러 구독자가 해당 메시지를 구독하는 Publish/Subscribe 통신 모델을 지원합니다.
- 다중 수신자 처리: 하나의 메시지를 여러 개의 구독자가 동시에 수신하여 처리할 수 있습니다.
- 필터링 및 구독 관리: Topic은 메시지 필터링을 통해 특정 조건에 따라 구독자에게 메시지를 전송할 수 있습니다. 또한, 메시지를 구독하기 위한 구독 관리 기능을 제공합니다.
- 유연한 구독자 구성: 새로운 구독자를 동적으로 추가하거나 제거하여 시스템을 유연하게 확장하고 관리할 수 있습니다.
Relay (릴레이)
Relay는 서로 다른 네트워크 환경에서 통신하는 애플리케이션 간의 안전하고 신뢰할 수 있는 메시징을 제공합니다.
- 다른 네트워크 간의 통신: Relay는 온프레미스와 클라우드, 클라우드와 클라우드, 가상 네트워크 간에도 통신할 수 있습니다.
- TCP 중심 통신: Relay는 TCP 기반의 통신을 지원하며, 웹 서비스나 HTTP와 같은 프로토콜을 사용하지 않습니다.
- 포트 중계: Relay는 원격 애플리케이션에 연결하기 위해 포트 중계 기능을 사용합니다.
이 세 가지 개념의 주요 차이점은 다음과 같습니다:
- 통신 모델: Queue는 Point-to-Point 통신, Topic은 Publish/Subscribe 통신, Relay는 다른 네트워크 간의 통신을 위한 중계 기능을 제공합니다.
- 수신자 수: Queue는 단일 수신자, Topic은 다중 구독자를 지원합니다.
- 메시지 필터링: Topic은 메시지 필터링을 통해 특정 구독자에게 메시지를 전송할 수 있습니다. Queue는 구독자 관리 기능을 지원하지 않습니다.
- 통신 방식: Queue와 Topic은 메시지 기반의 통신을 사용하며, Relay는 TCP 중심의 통신을 지원합니다.
이러한 특징과 차이점을 고려하여 애플리케이션의 통신 요구 사항에 맞게 적절한 서비스를 선택하여 사용할 수 있습니다.
Azure Service Bus는 확장성과 가용성을 위해 Azure의 글로벌 데이터 센터에 걸쳐 배포되며, 고성능 및 신뢰성을 보장하기 위해 다양한 기능과 옵션을 제공합니다. 다양한 통합 및 메시징 시나리오를 지원하여 신뢰할 수 있는 분산 시스템 아키텍처를 구축할 수 있습니다.
[참조] OpenAI GPT-3.5
'성장하기 > Microsoft Azure' 카테고리의 다른 글
[Azure CLI] az storage account create (0) | 2023.06.30 |
---|---|
Azure Service Bus queues 와 Azure Storage queues (0) | 2023.06.29 |
[Azure CLI] az servicebus queue show (0) | 2023.06.29 |
[Azure CLI] az servicebus namespace authorization-rule keys list (0) | 2023.06.29 |
Azure Event Hub와 Azure Event Grid (0) | 2023.06.29 |