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

메시징 기술을 사용하는 응용 프로그램 마이그레이션

업데이트 날짜: 2014년 1월

저자: Kun Cheng
참여자: Sreedhar Pelluru, Valery Mizonov, Christian Martinez, Rama Ramani
검토자: Steve Howard, Seth Manheim

메시지 큐는 응용 프로그램 간 통신이나 응용 프로그램 자체의 구성 요소 내 통신에 주로 사용됩니다. 최신 응용 프로그램에 대한 구성에서 설계자와 개발자는 메시지 큐를 사용하여 비동기 통신 채널을 설정할 수 있습니다. 메시지 큐를 사용하면 보낸 사람이 메시지를 보낸 후 받는 사람의 응답을 기다리지 않고 다른 작업을 진행할 수 있습니다. 받는 사람은 보낸 사람을 차단하지 않고 독립적으로 메시지를 받고 처리합니다. 이 메커니즘은 강력하게 통합된 응용 프로그램 구성 요소를 분리하는 데 도움이 되며 보다 유연하고 확장 가능한 솔루션을 가능하게 합니다.

설계자와 개발자는 내부에서 Windows Azure로 응용 프로그램을 마이그레이션할 때 현재 아키텍처를 검사하고 Windows Azure 큐 또는 Microsoft Azure 서비스 버스를 사용하여 느슨하게 결합된 아키텍처와 특히 Windows Azure 플랫폼에서 확장하는 기능의 활용 가능성을 파악하는 것이 좋습니다.

Windows Azure 큐는 Windows Azure 저장소를 기반으로 하며 지점 간 통신을 지원하도록 기본 큐 메커니즘을 제공합니다. Windows Azure 큐는 REST 기반 HTTP 또는 HTTPS를 통해 액세스를 지원합니다. 각 메시지 큐는 최대 100TB(현재 저장소 계정의 한계)의 용량을 지원하며, 각 메시지 크기는 64KB까지 가능합니다. 자세한 내용은 이 문서를 참조하십시오.


Windows Azure 큐는 보낸 사람의 웹 역할에서 작업 항목을 큐에 넣는 데 주로 사용됩니다. 또한 받는 사람의 작업자 역할에서 작업 항목을 큐에서 제거하고 비동기적으로 처리하는 데 Windows Azure 큐를 사용할 수도 있습니다.


Windows Azure 플랫폼은 또한 Service Bus를 통해 큐 기반 메시징을 제공합니다. Service Bus는 큐 외에도 보안 메시징과 릴레이 기능을 제공하여 내부와 Windows Azure 전체의 응용 프로그램 혼합 배포나 Windows Azure의 분산 응용 프로그램을 지원합니다. 메시징 메커니즘에 대해 Service Bus는 서비스 버스 큐를 통한 지점 간 통신과 서비스 버스 항목과 구독을 통한 게시-구독 모델을 모두 지원합니다. Service Bus 항목과 구독을 통해 여러 구독자가 단일 게시자를 동시에 수신할 수 있습니다. 릴레이 기능은 내부나 사설 클라우드의 엔터프라이즈 자산이 확장되어 클라우드 리소스와 통신할 수 있는 혼합 솔루션 시나리오를 가능하게 합니다. Service Bus는 REST 기반 HTTP/HTTPS 또는 TCP 프로토콜을 통해 액세스를 지원합니다. 각 Service Bus 큐 용량은 5GB까지 가능하며, 각 메시지는 256KB까지 가능합니다.

Windows Azure 큐와 Service Bus 큐 간에는 많은 차이점이 있습니다. 이러한 차이점에는 인증, 트랜잭션 지원 및 WCF 통합이 포함됩니다. 두 가지 큐 기술의 자세한 비교는 Windows Azure 큐 및 Windows Azure 서비스 버스 큐 - 비교 및 대조 문서를 참조하십시오.

Windows 응용 프로그램은 큐 메커니즘으로 Microsoft 메시지 큐(MSMQ)를 주로 사용합니다. MSMQ를 통해 별도의 서버에서 별도의 프로세스로 실행되는 응용 프로그램들이 서로 지속적이고 느슨하게 결합된 방식으로 통신할 수 있습니다. 또한 이기종 네트워크 환경의 응용 프로그램들이 동시에 온라인 상태가 아닐 때도 정보를 교환할 수 있습니다. 이는 확실한 메시지 배달, 분산 트랜잭션 지원, 효율적인 라우팅, 보안 및 우선 순위 기반 메시징을 제공합니다.

Windows Azure 플랫폼에 MSMQ 기술을 사용하는 응용 프로그램을 마이그레이션할 때는 현재 Windows Azure에서 MSMQ를 지원하지 않음을 염두에 두어야 합니다. 마이그레이션을 위해서는 Windows Azure 큐를 사용하도록 코드를 변경해야 합니다. 다음 섹션에서는 Windows Azure 플랫폼에 MSMQ 기술을 사용하는 응용 프로그램을 마이그레이션하는 여러 옵션을 제공합니다.

많은 면에서 Service Bus는 MSMQ와 가장 유사한 Windows Azure의 기능입니다. MSMQ와 서비스 버스는 기본 큐 작업, 트랜잭션 지원, 배달하지 못한 편지 등의 비슷한 기능을 공유합니다. 그러나 Service Bus를 사용하려면 MSMQ와는 다른 API가 필요하며 의미 체계도 많이 다릅니다 다음은 크기 및 성능과 관련된 몇 가지 주요 차이점입니다.

  • MSMQ 메시지의 최대 크기는 4MB이고, Service Bus 메시지의 최대 크기는 256KB(머리글과 본문 모두)입니다.

  • Service Bus 큐 크기는 최대 5GB로 제한됩니다. MSMQ 큐 크기는 컴퓨터 하드웨어 또는 구성 가능한 할당량에 의해 제한됩니다.

  • Service Bus 큐는 초당 최대 2,000개의 메시지를 처리할 수 있습니다. MSMQ는 초당 6,000개가 넘는 메시지를 처리할 수 있습니다(1K 벤치마크 기준). 자세한 내용은 Microsoft 메시지 큐 서버 환경에서 성능 최적화를 참조하십시오. .

용이한 마이그레이션을 위해 브리지를 통해 Windows Azure에서 MSMQ 내부와 Service Bus를 연결할 수 있습니다. 여기에서 예제 코드를 참조하십시오.

Windows Azure 큐는 기본 지점 간 통신 채널을 제공하지만 MSMQ와 달리 이기종 환경을 지원하지 않습니다. 또한 일반 MSMQ 환경에서 지원하는 자동 배달하지 못한 메일, 트랜잭션, 순서 보장 등의 기능을 기본적으로 지원하지 않지만, 응용 프로그램 개발자가 Windows Azure 큐 위에 필요한 기능을 구현하여 MSMQ와 유사한 기능을 사용할 수 있습니다. 그러나 이를 위해서는 응용 프로그램 사용자 지정이 필요합니다.

Windows Server의 MSMQ 기본 제공 지원으로 작업자 역할과 동일한 노드에서 MSMQ를 실행하면 MSMQ 내부 버전의 전체 기능을 사용할 수 있습니다. 그러나 작업자 역할은 장애 조치(failover) 및 서비스 유지 관리의 영향을 받습니다. 이 경우 로컬 MSMQ 저장소에 저장된 메시지와 같은 모든 상태 정보가 손실되고 복구할 수 없게 됩니다. MSMQ가 상태 비저장 방식으로 사용되었고 응용 프로그램이 역할 장애 조치(failover) 상황을 처리할 수 있도록 설계된 경우 이외에는 작업자 역할 인스턴스에서 MSMQ를 실행하지 않는 것이 좋습니다.

표시:
© 2014 Microsoft