내보내기(0) 인쇄
모두 확장

Azure 서비스 버스 브로커 메시징 API를 활용하는 최상의 방법

업데이트 날짜: 2014년 3월

저자: Valery Mizonov

참여자: Seth Manheim, Paolo Salvatori, James Podgorski, Eric Lam, Jayu Katti

이 문서에서는 Windows Azure Service Bus에서 .NET 관리형 조정된 메시징 API를 사용하여 작업하는 개발자를 위한 실질적인 지침을 제공합니다. 이 문서에서 제공하는 권장 사항은 최근 고객 프로젝트에서 직접 인용한 것입니다. Service Bus를 사용하여 실제 솔루션을 빌드하는 동안 Service Bus의 새로운 조정된 메시징 기능을 사용하는 솔루션의 안정성 및 성능을 향상시키는 데 도움이 되는 몇 가지 주요 모범 사례 및 잘 알려지지 않은 비밀에 대해 배웠습니다. 이 문서의 목적은 이러한 정보를 개발자 커뮤니티에서 공유하는 것입니다.

릴레이 및 브로커 메시지

Microsoft Azure 서비스 버스는 두 가지 포괄적인 메시징 솔루션을 제공합니다. 첫 번째 솔루션은 SOAP, WS-*, REST 등의 다양한 전송 프로토콜 및 웹 서비스 표준을 지원하는 클라우드에서 실행되는, 부하 분산이 뛰어난 중앙 집중식 "릴레이" 서비스를 통해 사용할 수 있습니다. 릴레이 서비스는 직접적인 단방향 메시징, 요청/응답 메시징 및 피어 투 피어 메시징을 지원합니다. 이러한 유형의 메시징 솔루션과 연결된 패턴을 릴레이 메시징이라고 합니다. 릴레이 메시징 패턴에서는 내부 또는 클라우드 기반 서비스가 아웃바운드 포트를 통해 릴레이 서비스에 연결하고 특정 랑데부 주소와 연결된 통신에 사용할 양방향 소켓을 만듭니다. 클라이언트는 서비스가 상주하고 있는 위치를 알 필요가 없으며, 내부 서비스는 방화벽에 열려 있는 인바운드 포트가 필요 없습니다. 릴레이 메시징은 다양한 이점을 제공하지만 서버와 클라이언트가 둘 다 동시에 온라인 상태에 있어야 메시지를 보내고 받을 수 있습니다. 릴레이 메시징은 Service Bus의 최초 릴리스부터 제공되었습니다.

두 번째 메시징 솔루션을 통해 조정된 메시징 기능을 사용할 수 있습니다. 브로커 메시징 스키마는 비동기 또는 "일시적으로 분리된" 메시징으로 간주할 수도 있습니다. 즉, 생산자(보낸 사람)와 소비자(받는 사람)가 동시에 온라인 상태일 필요가 없습니다. 이 메시징 인프라는 소비하는 쪽에서 마시지를 수신할 준비가 될 때까지 메시지를 안정적으로 저장합니다. 그러면 분산 응용 프로그램의 구성 요소가 유지 관리 목적이나 구성 요소 크래시 등의 이유로 전체 시스템에 영향을 주지 않은 채 자발적으로 연결을 끊을 수 있습니다. 또한 업무 종료 시간에만 실행해야 하는 재고 관리 시스템과 같이 수신 응용 프로그램은 하루 중 특정 시간 동안에만 온라인 상태로 설정할 수 있습니다.

Service Bus 브로커 메시징 인프라의 핵심 구성 요소는 , 항목구독입니다. 이러한 구성 요소를 사용하면 임시 분리, 게시/구독, 부하 평준화, 부하 분산 등의 새로운 비동기 메시징 시나리오의 구현이 가능합니다. 이러한 시나리오에 대한 자세한 내용은 추가 리소스 섹션을 참조하십시오.

브로커 메시징 API 개요

이 문서에서는 .NET 관리형 브로커 메시징 API에서 제공하는 다양한 구성 요소, 클래스 및 유형에 대한 많은 참조를 확인할 수 있습니다. 뿐만 아니라 이해를 돕기 위해 Service Bus의 조정된 메시징 기능을 제공 및 지원하는 일부 주요 API의 목록을 제공합니다.

다음 클래스는 브로커 메시징 솔루션을 개발할 때 종종 사용되는 Microsoft.ServiceBusMicrosoft.ServiceBus.Messaging 네임스페이스에서 가장 자주 사용되는 API 멤버입니다.

 

클래스 이름

설명

BrokeredMessage

Service Bus 클라이언트 간의 통신 단위를 나타냅니다. 메시징 클라이언트가 큐와 항목을 통해 통신할 때 BrokeredMessage 개체의 직렬화된 인스턴스가 유선을 통해 전송됩니다.

QueueClient

Service Bus 큐에서 메시지를 보내고 받는 데 사용할 수 있는 메시징 개체를 나타냅니다.

QueueDescription

큐 경로, 동작 설정(예: 잠금 기간, 기본 TTL 및 중복 검색) 및 정보 데이터 요소(예: 현재 큐 길이 및 크기)를 비롯하여 Service Bus 큐를 설명하는 메타데이터 개체를 나타냅니다.

TopicClient

Service Bus 항목으로 메시지를 보내는 데 사용할 수 있는 메시징 개체를 나타냅니다.

TopicDescription

항목 길이, 동작 설정(예: 중복 검색) 및 정보 데이터 요소(예: 현재 항목 크기 및 최대 항목 크기)를 비롯하여 Service Bus 항목을 설명하는 메타데이터 개체를 나타냅니다.

SubscriptionClient

Service Bus 구독에서 메시지를 수신하는 데 사용할 수 있는 메시징 개체를 나타냅니다.

SubscriptionDescription

구독 이름, 소유하고 있는 항목 경로, 동작 설정(예: 세션 지원, 기본 TTL, 잠금 기간) 및 정보 데이터 요소(예: 현재 메시지 수)를 비롯하여 Service Bus 구독을 설명하는 메타데이터 개체를 나타냅니다.

NamespaceManager

기존 엔터티 생성, 검색, 삭제 및 어설션과 같은 Service Bus 메시징 엔터티(큐, 항목, 구독, 규칙)에 대한 런타임 작업을 수행하는 관리 개체를 나타냅니다.

MessagingFactory

TopicClient, QueueClient 및 SubscriptionClient와 같은 메시징 엔터티 클라이언트의 수명 주기를 인스턴스화하고, 추적하고, 관리하는 팩터리 개체를 나타냅니다.

MessageReceiver

메시지 수신 작업에 특별히 중점을 둔 풍부한 메시징 기능을 지원하는 추상적 메시징 개체를 나타냅니다.

MessageSender

메시지 전송 작업에 특별히 중점을 둔 풍부한 메시징 기능을 지원하는 추상 메시징 개체를 나타냅니다.

MessageSession

관련 메시지를 단일 트랜잭션으로 처리하기 위해 그룹화하는 데 사용할 수 있는 메시지 세션을 나타냅니다.

Filter

Service Bus 구독 평가 엔진에서 실행되는 필터 식 및 연결된 작업으로 구성된 추상 메타데이터 개체를 나타냅니다. 필터 클래스는 지정된 필터 유형에 대한 메타데이터 개체의 구현을 나타내는 TrueFilter, FalseFilter, SqlFilterCorrelationFilter에 대한 기본 클래스를 위한 것입니다.

TokenProvider

SAML, 공유 암호 및 단순 웹 토큰의 획득을 담당하는 다양한 유형의 보안 토큰 공급자에 대한 액세스를 제공하는 팩터리 개체를 나타냅니다.

Service Bus를 사용하여 첫 번째 조정된 메시징 솔루션을 빌드하는 작업을 손쉽게 시작하려면 이러한 API 아트팩트에 대해 잘 알고 있는 것이 좋습니다. 이 목록에 나와 있는 클래스는 브로커 메시징 API에서 제공하는 클래스의 일부에 불과합니다. 모든 API 멤버를 보려면 MSDN 설명서를 참조하십시오.

브로커 메시징 API에서의 모범 사례

이 섹션의 항목에서는 .NET 관리형 브로커 메시징 API의 실제 사용 경험에서 나온 구체적인 권장 사항을 공유합니다. 이러한 권장 사항의 목적은 개발자가 다음 섹션에서 설명하는 기술과 패턴을 적용하여 강력한 메시징 솔루션을 제공할 수 있도록 하기 위한 것입니다. 이 섹션에서는 다음 항목을 다룹니다.

커뮤니티 추가 항목

Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2014 Microsoft