Azure Service Bus 살펴보기
Azure Service Bus는 메시지 큐와 게시-구독 토픽이 있는 완전 관리형 엔터프라이즈 메시지 브로커입니다. Service Bus는 애플리케이션과 서비스를 분리하는 데 사용됩니다. 데이터는 메시지를 사용하여 서로 다른 애플리케이션 및 서비스간에 전송됩니다. 메시지는 메타데이터로 데코레이팅된 컨테이너이며 데이터를 포함합니다. JSON, XML, Apache Avro, 일반 텍스트와 같은 일반적인 형식으로 인코딩된 정형 데이터를 포함하여 모든 종류의 정보는 데이터가 될 수 있습니다.
몇 가지 일반적인 메시징 시나리오는 다음과 같습니다.
- 메시징 주문, 저널 판매 및 구입 또는 인벤토리 이동과 같은 비즈니스 데이터를 전송합니다.
- 애플리케이션 분리. 애플리케이션 및 서비스의 안정성과 확장성을 개선합니다. 클라이언트와 서비스가 동시에 온라인 상태일 필요는 없습니다.
- 토픽 및 구독. 게시자와 구독자 간의 1:n 관계를 활성화합니다.
- 메시지 세션. 메시지 순서 지정 또는 메시지 지연이 필요한 워크플로를 구현합니다.
Service Bus 계층
Service Bus는 기본, 표준 및 프리미엄 계층을 제공합니다. Service Bus 메시징의 프리미엄 계층은 중요 업무용 애플리케이션의 규모, 성능 및 가용성에 대한 일반적인 고객 요청을 처리합니다. 프로덕션 시나리오에는 프리미엄 계층이 권장됩니다. 기능 집합은 거의 동일하지만 이러한 Service Bus 메시징의 두 계층은 다른 용도로 사용하도록 고안되었습니다. 사용 가능한 계층에 대한 자세한 내용은 Service Bus 가격 책정을 참조하세요.
프리미엄 계층과 표준 계층 간의 몇 가지 높은 수준의 차이점이 다음 표에 강조되어 있습니다.
Premium | Standard |
---|---|
높은 처리량 | 가변 처리량 |
예측 가능한 성능 | 가변 대기 시간 |
고정된 가격 책정 | 종량제 가변 가격 |
작업을 확장 및 축소하는 기능 | 해당 없음 |
메시지 크기는 최대 100MB입니다. | 최대 256KB의 메시지 크기 |
고급 기능
Service Bus에는 보다 복잡한 메시징 문제를 해결할 수 있는 고급 기능이 있습니다. 다음 표에서는 이러한 기능 중 몇 가지를 설명합니다.
기능 | Description |
---|---|
메시지 세션 | Service Bus에서 FIFO(first-in, first-out) 보장을 만들려면 세션을 사용합니다. 메시지 세션을 사용하면 관련 메시지의 무제한 시퀀스를 독점적으로, 순서를 지정하여 처리할 수 있습니다. |
자동 전달 | 자동 전달 기능은 큐 또는 구독을 동일한 네임스페이스에 있는 다른 큐 또는 토픽에 연결합니다. |
배달하지 못한 편지 큐 | Service Bus은 DLQ(배달하지 못한 편지 큐)를 지원합니다. DLQ는 받는 사람에게 배달할 수 없는 메시지를 보관합니다. Service Bus를 사용하여 DLQ에서 메시지를 제거하고 검사할 수 있습니다. |
예약 배달 | 지연된 처리를 위해 큐 또는 토픽에 메시지를 제출할 수 있습니다. 특정 시간에 시스템에서 처리될 수 있도록 작업을 예약할 수 있습니다. |
메시지 지연 | 큐 또는 구독 클라이언트는 나중으로 메시지 검색을 연기할 수 있습니다. 메시지는 큐나 구독에 남아 있지만 따로 분리됩니다. |
트랜잭션 | 트랜잭션 그룹은 두 개 이상의 작업을 실행 범위로 그룹화합니다. Service Bus는 단일 트랜잭션 범위 내에서 단일 메시징 엔터티에 대한 그룹화 작업을 지원합니다. 메시지 엔터티는 큐, 토픽 또는 구독일 수 있습니다. |
필터링 및 작업 | 구독자는 토픽에서 수신할 메시지를 정의할 수 있습니다. 이러한 메시지는 하나 이상의 명명된 구독 규칙의 형태로 지정됩니다. |
유휴 상태에서 자동 삭제 | 유휴 상태에서 자동 삭제를 통해 큐가 자동으로 삭제된 후 유휴 간격을 지정할 수 있습니다. 최소 기간은 5분입니다. |
중복 검색 | 오류로 인해 클라이언트에서 전송 작업의 결과를 의심할 수 있습니다. 중복 검색을 사용하면 발신자가 동일한 메시지를 다시 보내거나 큐 또는 토픽에서 중복 복사본을 삭제할 수 있습니다. |
보안 프로토콜 | Service Bus는 SAS(공유 액세스 서명), RBAC(역할 기반 액세스 제어) 및 Azure 리소스에 대한 관리 ID 같은 보안 프로토콜을 지원합니다. |
지리적 재해 복구 | Azure 지역 또는 데이터 센터에서 가동 중단이 발생하는 경우 지리적 재해 복구를 통해 데이터 처리는 다른 지역 또는 데이터 센터에서 작업을 계속할 수 있습니다. |
보안 | Service Bus는 표준 AMQP 1.0 및 HTTP/REST 프로토콜을 지원합니다. |
표준 및 프로토콜 규정 준수
Service Bus의 기본 유선 프로토콜은 오픈 ISO/IEC 표준인 AMQP(Advanced Messaging Queueing Protocol) 1.0입니다. 따라서 고객은 Service Bus와 ActiveMQ 또는 RabbitMQ 같은 온-프레미스 broker에 대해 작동하는 애플리케이션을 작성할 수 있습니다. AMQP 프로토콜 가이드는 이러한 추상화를 구현하려 할 때 도움이 되는 자세한 정보를 제공합니다.
Service Bus Premium은 Java/Jakarta EE JMS(Java Message Service) 2.0 API와 완벽하게 호환됩니다.
클라이언트 라이브러리
완전히 지원되는 Service Bus 클라이언트 라이브러리는 Azure SDK를 통해 사용할 수 있습니다.
- .NET용 Azure Service Bus
- Java용 Azure Service Bus 라이브러리
- Java JMS 2.0용 Azure Service Bus 공급자
- JavaScript 및 TypeScript용 Azure Service Bus 모듈
- Python용 Azure Service Bus 라이브러리