이 페이지가 유용했습니까?
이 콘텐츠에 대한 여러분의 의견은 중요합니다. 의견을 알려주십시오.
추가 의견
1500자 남음
내보내기(0) 인쇄
모두 확장
확장 최소화

Microsoft Message Queuing 구성

Duwamish Online

Steve Kirk
Microsoft Developer Network

요약 : 이 기사에서는 메시지 대기열에만 발생하는 특정 네트워크 및 구성 문제를 검토하고 Duwamish Online 네트워크 아키텍처가 Microsoft Windows 2000에서 메시지 대기열을 지원하는 방법에 대해 설명합니다(8페이지/인쇄 페이지 기준).

목차

소개 소개
메시지 대기열 및 아키텍처 메시지 대기열 및 아키텍처
Windows 2000의 MSMQ 및 대기 중인 구성 요소 Windows 2000의 MSMQ 및 대기 중인 구성 요소
메시지 대기열 구성 메시지 대기열 구성
결론 결론

소개

하나 이상의 작업을 동시에 실행할 수 있는 비동기 작업을 사용하는 응용 프로그램은 작업을 순차적으로 실행하는 동기 작업만 사용하는 응용 프로그램과 비교했을 때 사용 가능성, 안정성, 확장성, 가용성이 뛰어납니다.

Duwamish Online 응용 프로그램의 주문 처리 워크플로에서의 비동기 작업은 메시지 대기열(MSMQ)에 기록된 메시지를 사용하여 시작됩니다. 메시지를 기록한 후 대기하지 않고 메시지 전송 코드가 계속되고 메시지 코드를 받아들이는 별도의 프로세스가 대기열에서 메시지를 읽은 다음 메시지에 대해 비동기 작업을 실행합니다. Duwamish Online의 비동기 주문 처리 작업의 디자인에 대해서는 다음 기사에서 심도 있게 다뤄질 것입니다.

메시지 대기열 및 아키텍처

편의를 위해 Duwamish Online의 모든 구성 요소가 한 컴퓨터에서 실행되도록 구성할 수는 있지만, 응용 프로그램이 서버 네트워크에 분산되어 있을 때 높은 사용 가능성과 확장성을 확보할 수 있습니다. 응용 프로그램을 분산하면 로드 균형 조정을 통한 높은 확장성과 중복을 통한 높은 사용 가능성을 얻을 수 있습니다.

다음 내용을 이해하기 쉽게 메시지 대기열 응용 프로그램에 메시지를 보내는 부분(발신자), 메시지 대기열, 대기열의 메시지를 받는 부분(수신기)이 있다고 가정합니다. Duwamish Online에서 "발신자"는 들어오는 주문을 처리하고 대기열에 메시지를 기록하는 코드가 되고, "수신기"는 대기열에서 메시지를 읽고 해당 주문 처리 워크플로를 실행하는 코드가 됩니다.

d5msmq_1.gif

그림 1. 메시지 대기열의 기본 구성

그림 1은 같은 컴퓨터의 발신자, 대기열, 수신기를 보여 줍니다. 이 구성에서는 여러 프로세서에 걸쳐 분산하는 것으로만 로드 균형을 조정할 수 있습니다. 프로세서를 추가하면 처리 능력이 향상되긴 하지만 결국 리소스 경합으로 인해 처리량이 제한됩니다. 개별적인 클러스터 노드로서가 아닌 다음 사용 가능한 서버 모델(4,8,16, ...)에서 결정한 그룹으로만 이 구성에 프로세서를 추가할 수 있습니다. 하드웨어 오류가 발생할 경우 RAID 장치를 사용하여 메시지 대기열 데이터를 복구할 수는 있지만 시스템에 오류를 발생시킨 원인이 응용 프로그램의 해당 부분을 사용할 수 없게 만든다는 점에서 중복 또한 제한됩니다.

d5msmq_2.gif

그림 2. 로드 균형 조정 클러스터의 발신자

메시지 대기열 응용 프로그램을 분산시키기 위한 첫 번째 단계는 메시지 대기열을 별도의 컴퓨터에 놓는 것입니다. 이렇게 하면 발신자 구성 요소를 로드 균형 조정 및 중복을 위해 클러스터할 수 있습니다. 발신자 시스템에 나가는 로컬 대기열이 있을 때는 메시지 대기열 서버 대기열을 간헐적으로 사용할 수 없을 때 로컬 대기열이 응용 프로그램의 오류 없이 메시지를 저장할 수 있습니다. 이 아키텍처는 발신자가 네트워크 로드 균형 조정(NLB)에 대해 클러스터된 웹 서버에 있는 Duwamish Online 아키텍처와 비슷합니다.

d5msmq_3.gif

그림 3. 로드 균형 조정 수신기

판독기 코드 또한 로드 균형 조정 및 중복을 위해 분산할 수 있습니다. 또한 메시지 대기열 서버에서 판독기 코드를 제거하면 판독기 코드의 오류로 인해 서비스가 중단되지 않도록 메시지 대기열 서비스를 보호할 수도 있습니다.

d5msmq_4.gif

그림 4. 장애 조치 클러스터의 메시지 대기열

대기열을 장애 조치 클러스터로 옮기면 메시지 대기열 서비스의 사용 가능성을 증가시키는 중복을 통해 대기열 데이터를 보호함으로써 RAID 저장소를 보완할 수 있습니다.

메시지 대기열 서버는 대기열의 메시지(데이터)와 메시지 대기열 서비스가 데이터베이스의 서비스 및 데이터 저장소와 비슷하다는 점에서 데이터베이스와 유사합니다. 메시지 대기열은 데이터베이스 클러스터에 사용하는 공유 RAID 장치가 있는 장애 조치 클러스터로 사용하기에 적절합니다.

Windows 2000의 MSMQ 및 대기 중인 구성 요소

대기 중인 COM+ 구성 요소(QC)와 결합된 Microsoft® Windows® 2000의 메시지 대기열은 그림 1-4에 나타난 일련의 구성을 지원하지만 응용 프로그램에서 명시적 메시지 대기열 코드를 필요로 하지 않습니다. 메시지 대기열을 자동으로 사용할 수 있도록 COM+ 구성 요소 클래스를 대기 중인 것으로 선언할 수 있습니다. MSMQ API를 통해 액세스한 메시지 대기열은 대기 중인 구성 요소보다 더 나은 프로그래밍 방식 제어를 제공하지만 QC가 모든 응용 프로그램 요구 사항 및 응용 프로그램 코드의 단순함을 지원한다는 점을 고려하면 Duwamish Online에 QC를 선택하는 것이 바람직합니다.

도메인 구성 또는 작업 그룹 구성

메시지 대기열을 Windows 2000 도메인 또는 작업 그룹 모드 중 하나에서 구성할 수 있습니다.

도메인 모드에서는 Microsoft Active Directory™ 서비스를 사용하고 MSMQ를 실행하는 도메인 컨트롤러를 포함하여 도메인 서비스를 필요로 합니다. 반대로 작업 그룹 모드에서는 도메인 요구 사항이 없지만 Active Directory 서비스를 사용하지 않기 때문에 제공되는 구성 옵션이 줄어듭니다.

도메인 구성을 선택하느냐 작업 그룹 구성을 선택하느냐에 따라 공개 대기열을 선택하느냐 개인 대기열을 선택하느냐가 결정됩니다.

공개 대기열 또는 개인 대기열

메시지 대기열은 공개 대기열(로컬 및 원격 응용 프로그램에서 액세스) 및 개인 대기열(주로 로컬 응용 프로그램에서 사용)을 지원합니다.

"개인 대기열"은 그림 1과 같이 발신자와 수신기를 포함하는 대기 중인 구성 요소 및 대기열이 모두 같은 컴퓨터에 있는 구성에서 가장 적합합니다. 개인 대기열을 사용하면 컴퓨터를 Windows 2000 도메인의 구성원으로 만들 필요가 없는 이점이 있습니다. 개인 대기열 사용을 지원하고 호스트하는 데는 메시지 대기열 작업 그룹 구성만 필요합니다.

반대로 "공개 대기열"은 앞에서 설명한 모든 구성을 지원하지만 메시지 대기열을 도메인으로 구성해야 합니다.

클라이언트 옵션

"독립 클라이언트" 또한 MSMQ 서버입니다. 이 이름은 대상 대기열을 사용할 수 없을 때 나가는 메시지를 받아 대기열에 놓이도록 하면서 로컬 대기열에 메시지를 저장할 수 있는 기능 때문에 생긴 것입니다. 독립 클라이언트는 나가는 대기열에서 제공하는 견고함 때문에 그림 2-4의 발신자 코드를 지원하는 데 적합합니다.

반대로 "종속 클라이언트"는 MSMQ 서버 지원을 필요로 합니다. 로컬 대기열은 사용되지 않습니다. 종속 클라이언트는 그림 3에서와 같이 뒤에 오는 워크플로 코드가 발신기 역할을 하지 않고 대기열에 메시지를 기록하는 한 수신기를 호스트하는 컴퓨터에서 사용하기에 적합합니다. Duwamish Online이 이러한 경우인데, 이 경우 수신기의 코드는 나가는 대기열에 독립 클라이언트를 사용하게 만드는 발신자가 됩니다.

대기 중인 구성 요소

대기 중인 COM+ 구성 요소는 COM+ 클래스에 지정된 메서드를 대기열 메시지로 마샬링함으로써 메시지 대기열 사용을 단순화합니다.

  1. COM+ 응용 프로그램은 Component Services Manager를 사용하여 대기 중인 것으로 지정됩니다. 메시지 수신은 물론 메시지를 기록하도록 COM+ 응용 프로그램을 구성할 수 있습니다.

  2. 각 클래스는 대기 중인 것으로 지정됩니다.

  3. 호출 코드는 컴퓨터 이름으로 원격 MSMQ 대기열이 지정되도록 하는 특수 구문을 사용하여 QC 클래스를 인스턴스화합니다.

  4. QC가 지정된 대기열의 메시지로 메서드 호출을 마샬링하면 즉시 실행이 계속됩니다. 반환 값이나 매개 변수는 지원되지 않습니다.

  5. 수신하도록 QC를 구성하면 QC가 대기열에서 들어오는 메시지를 읽은 다음 대기 중인 클래스의 로컬 인스턴스를 만들고 들어오는 메시지를 QC 클래스의 로컬 인스턴스에 있는 메서드 호출로 마샬링합니다. 구성 옵션을 사용하여 QC가 수신하게 할지 여부를 지정할 수 있습니다.

대기 중인 구성 요소 및 MSMQ에 대한 자세한 정보는 QC 설명서 toUS.gif 를 참조하십시오.

Duwamish Online 구성

Duwamish Online 네트워크 구성은 그림 5와 같습니다. MSMQ 구성은 그림 2의 구성과 같습니다. 발신자(QC) 코드는 웹 서버에 있고 메시지 대기열과 판독기(QC) 코드는 주문 처리 서버에 있습니다.

그림 5. Duwamish Online 네트워크 구성

웹 서버는 독립 MSMQ 클라이언트로 구성되고 대기 중인 구성 요소는 메서드 호출을 주문 처리 서버의 메시지 대기열에 메시지로 마샬링하도록 구성되어 있습니다. QC는 대기열에 메시지를 보내기만 하고 수신하지는 않도록 구성되어 있습니다. 비대기 중인 메서드는 동기식으로 처리됩니다.

주문 처리 서버는 MSMQ 서버로 구성되어 있습니다. QC는 대기열에 도달한 메시지를 수신하고 처리하도록 구성되어 있습니다. 또한 서버는 지불 공급자 및 SMTP 서비스와 통신하는 구성 요소를 호스트합니다. QC가 실행한 워크플로 코드가 지불 공급자와 SMTP 서비스를 사용합니다.

이렇게 구성하면 주문 처리 서버를 임시 사용할 수 없을 경우에도 응용 프로그램에 오류가 발생하지 않으므로 그림 3에서와 같이 여러 개의 판독기 노드를 사용할 경우 가능한 중복 및 로드 균형 조정 또는 그림 4에서와 같이 메시지 대기열의 장애 조치 클러스터의 사용 가능성 증대를 추구하지 않기로 했습니다.

메시지 대기열 구성

MSMQ를 설치하고 공개 대기열 서버를 구성하려면 다음 단계를 따르십시오. 이는 Duwamish Online의 주문 처리 서버에 사용한 방법입니다. 공개 대기열 서버이기 때문에 서버를 Windows 2000 도메인의 구성원으로 구성해야 합니다. 도메인에 MSMQ를 실행하는 도메인 컨트롤러 또한 필요합니다. MSMQ 서버를 도메인 컨트롤러로 수준을 올리거나 도메인 컨트롤러에 MSMQ를 설치할 수 있습니다.

MSMQ는 Windows 2000의 운영 체제 소프트웨어의 일부로 제공되지만 기본 설치할 때는 설치되지 않습니다.

MSMQ 설치

  1. 시작 메뉴에서 설정 / 제어판을 가리킵니다.

  2. 프로그램 추가/제거를 두 번 클릭한 다음 Windows 구성 요소 추가/제거를 클릭합니다.

  3. Windows 구성 요소 마법사에서 메시지 대기열 서비스를 선택한 다음 확인을 클릭합니다.

  4. 메시지   대기열   종류 대화 상자에서 기본 메시지 대기열 서버를 선택하고 다음을 클릭합니다.

  5. 다음 대화 상자에는 Windows NT 4.0 클라이언트 보안을 약화시킬 수 있는 옵션이 나타납니다. 아니오를 선택하고 다음을 클릭하여 계속합니다. 설치 프로그램이 완료되기 전에 Windows 2000 설치 파일 위치를 묻는 메시지가 나타납니다.

참고그림 2-4 및 Duwamish Online 웹 서버에서와 같이 발신자 코드를 호스트하는 컴퓨터는 로컬 대기열 기능을 수행할 수 있도록 MSMQ 서버로 구성해야 합니다. 그림 3-4와 같이 수신기 코드를 호스트하는 컴퓨터 또한 메시지 대기열로 메시지를 보낼 경우에는 MSMQ 서버로 구성해야 합니다.

결론

메시지 대기열과 대기 중인 COM+ 구성 요소를 결합하면 명시적 메시지 대기열 코드를 추가하지 않고도 메시지 대기열의 장점을 이용할 수 있습니다. 이러한 결합은 현재의 요구 사항을 지원하고 보다 뛰어난 중복 및 폭넓은 로드 균형 조정을 지원하는 옵션을 제공하기 때문에 Duwamish Online 응용 프로그램에 효과적으로 사용할 수 있습니다.

현재의 구성은 지불 서비스 구성 요소 및 SMTP 서비스와 함께 메시지 대기열을 호스트하는 하나의 주문 처리 서버를 활용합니다. 그러나 이 서버에서 응용 프로그램에 간헐적인 서비스 중단이 발생하는 경우는 웹 서버의 나가는 메시지 대기열에 의해 제한됩니다. 따라서, 간헐적으로 서비스가 중단되더라도 메시지를 대기열에 놓음으로써 응용 프로그램은 계속 사용할 수 있게 됩니다.

Duwamish Online 구성에 대한 다음 업그레이드 옵션은 비용/이점 기준에서 평가해야 합니다.

  • 웹 서버에서 나가는 대기열에 RAID 장치를 사용하면 웹 서버의 하드웨어 오류로 인해 MSMQ 메시지가 손실되는 경우가 줄어듭니다.

  • 주문 처리 서버에서 메시지 대기열에 RAID 장치를 사용하면 해당 서버 오류로 인해 데이터가 손실되는 경우가 줄어듭니다.

  • 대기 중인 구성 요소를 호스트하는 주문 처리 서버를 여러 개 사용하면 단일 지점에서 실패하는 경우가 없고 주문 워크플로의 메시지 수신 측에서 로드 균형 조정이 향상됩니다. 이럴 경우 주문 워크플로 문제로 인한 오류로부터 메시지 대기열을 보호할 수도 있습니다.

  • 공유 RAID 장치가 있는 장애 조치 클러스터를 사용하면 메시지 대기열의 사용 가능성이 향상됩니다.

최종수정일: 2001년 2월 12일

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

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