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를 통해 사용할 수 있습니다.