Sun Java System Message Queue 3.7 UR1 기술 개요

메시지 전달

클러스터 구성에서 브로커는 대상 및 메시지 소비자에 대한 정보를 공유합니다. 각 브로커는 다음 정보에 대해서도 알고 있습니다.

이러한 정보를 가지고 각 브로커는 자신과 직접 연결된 메시지 제작자로부터 원격 메시지 소비자에게 메시지를 라우팅할 수 있습니다. 제작자의 홈 브로커는 소비자의 홈 브로커와는 다른 기능을 합니다.

클러스터된 브로커는 클러스터 내의 메시지 트래픽을 최소화하기 위해 함께 작동합니다. 예를 들어 원격 브로커에 같은 주제 대상에 대해 두 개의 동일한 가입이 있으면 메시지는 회선을 통해 한 번만 전송됩니다. 로컬 소비자에 대한 전달이 원격 소비자에 대한 전달보다 높은 우선 순위를 갖도록 대상 등록 정보를 설정하여 트래픽을 더 줄일 수 있습니다.

클라이언트와 브로커 간에 암호화된 보안 메시지를 전달하는 경우 브로커 간의 메시지 전달을 보호하도록 클러스터를 구성할 수 있습니다.

대상 속성

클러스터된 브로커에 있는 물리적 대상에 대해 설정된 속성은 클러스터에 있는 해당 대상의 모든 인스턴스에 적용됩니다. 그러나 이러한 속성에서 지정한 제한 중 일부는 클러스터 전체에 적용되고, 나머지는 개별 대상 인스턴스에 적용됩니다. 표 4–1에서는 물리적 대상에 대해 설정 가능한 속성과 그 범위를 보여 줍니다.

표 4–1 클러스터된 브로커에 있는 물리적 대상의 등록 정보

등록 정보 이름 

범위 

maxNumMsgs

각 브로커즉, 클러스터 전체에 걸쳐 제작자를 배포하면 소비하지 않은 전체 메시지에 대한 제한이 증가하게 됩니다. 

maxTotalMsgBytes

각 브로커즉, 클러스터 전체에 제작자를 배포하면 소비하지 않은 메시지용으로 예약된 전체 메모리에 대한 제한이 증가하게 됩니다. 

lmitBehavior

전역 

maxBytesPerMsg

각 브로커 

maxNumProducers

각 브로커 

maxNumActiveConsumers

전역 

maxNumBackupConsumers

전역 

consumerFlowLimit

전역 

localDeliveryPreferred

전역 

isLocalOnly

전역 

useDMQ

각 브로커 

클러스터링 및 대상

대상이 관리자에 의해 작성되는지, 자동으로 작성되는지 아니면 임시 대상인지 여부에 따라 클러스터 내에서 대상이 전파되는 방식 그리고 연결 또는 브로커 오류 발생 시 대상이 처리되는 방식이 달라집니다. 다음 하위 절에서는 대상이 작성되는 시점과 그 복제 방법을 알 수 있는 몇 가지 사용 예에 대해 알아봅니다. 여기에는 다음이 포함됩니다.

회신 모델을 사용하여 대기열로 생성

아래 그림에서는 클라이언트가 대기열에 생성하고 회신 모델을 사용할 경우 대상이 어떻게 작성되고 복제되는지 보여 줍니다.

그림 4–2 클러스터에서의 대상 복제: 회신을 사용하는 대기열

클러스터에서 대상의 전파를 보여 주는 그림자세한 내용은 텍스트에 설명되어 있습니다.

  1. 관리자는 물리적 대상인 QW를 만듭니다. 작성 시점에 클러스터 전체에 걸쳐 대기열이 복제됩니다.

  2. 제작자 ProdQW는 대기열 QW로 메시지를 보내고 임시 대기열 TempQ1W로 회신을 보내는 회신 모델을 사용합니다. (임시 대기열은 응용 프로그램에서 임시 대상을 만들고 소비자를 추가할 때 만들어지고 복제됩니다.)

  3. 홈 브로커 BrokerWQW에 전송된 메시지를 지속적으로 처리하고 이 메시지의 선택 기준을 충족하는 첫 번째 활성 소비자에게로 메시지 경로를 지정합니다. 메시지를 받을 준비가 된 소비자에 따라 메시지는 BrokerX에 있는 소비자 C1QWBrokerY에 있는 소비자 C2QW에게 전달됩니다. 메시지를 받은 소비자는 대상 TempQ1W로 회신을 보냅니다.

자동 작성 대상에 생성

다음 그림에서는 제작자가 존재하지 않는 대상에게 메시지를 보내고 대상을 자동으로 작성해야 하는 경우에 대상이 어떻게 작성되고 복제되는지를 보여 줍니다.

그림 4–3 클러스터에서의 대상 복제: 자동 작성된 대상

클러스터에서 대상의 전파를 보여 주는 그림자세한 내용은 텍스트에 설명되어 있습니다.

  1. 제작자 ProdAutoQY는 브로커에 없는 대상인 AutoQY로 메시지를 보냅니다.

  2. 브로커는 지속적으로 메시지를 처리하고 대상 AutoQY를 만듭니다.

    자동 생성된 대상이 클러스터 전체에 걸쳐 자동으로 복제되지는 않습니다. 소비자가 대기열 AutoQY로부터 메시지를 받도록 선택한 경우에만 소비자의 홈 브로커는 대상 AutoQY를 만들고 소비자에게 메시지를 전달합니다. 소비자가 자동 작성 대상을 만들 때 대상은 클러스터 전체로 복제됩니다. 이 예에서 소비자 CAutoQY가 대상을 작성할 때 복제가 이루어집니다.

주제 대상에 생성

다음 그림에서는 클라이언트가 관리자에 의해 작성된 주제 대상에 메시지를 게시할 때 클러스터에서 대상이 작성되고 복제되는 방법을 보여 줍니다.

그림 4–4 클러스터에서의 대상 복제: 주제에 게시

클러스터에서 대상의 전파를 보여 주는 그림자세한 내용은 텍스트에 설명되어 있습니다.

  1. 관리자가 물리적 주제 대상인 TY를 만듭니다. 관리 작성 대상인 TY는 대상이 사용되기 전에 브로커 클러스터 전체로 복제됩니다.

  2. 게시자 PubTY는 주제 TY로 메시지를 보냅니다.

  3. 홈 브로커 BrokerYTY에 게시된 모든 메시지를 지속적으로 처리하고 이 메시지의 선택 기준에 일치하는 모든 주제 가입자에게로 메시지 경로를 지정합니다. 이 예에서 C1TYC2TY는 주제 TY에 가입됩니다.

연결 또는 브로커 오류 발생 시 대상 처리

표 4–2에서는 클러스터에서 여러 종류의 대상이 복제되고 삭제되는 방법에 대해 설명합니다.

표 4–2 클러스터에서 대상 처리

대상 

전파 및 삭제 

관리 작성 

대상이 만들어지면 클러스터 내에서 전파되고 각 브로커는 대상 정보를 지속적으로 저장합니다. 

관리자가 명시적으로 대상을 삭제하면 해당 대상은 삭제됩니다. 

마스터 브로커가 있으면 작성 및 삭제 기록이 마스터 브로커에 저장되어 클러스터 내의 브로커가 상태 정보를 동기화할 수 있습니다. 

임시 

대상이 만들어지면 클러스터 곳곳으로 전파됩니다. 

임시 대상과 관련된 소비자가 다시 연결되도록 허용되면 대상은 소비자의 홈 브로커에 지속적으로 저장됩니다. 그렇지 않은 경우 대상이 저장될 수 없습니다. 

소비자의 연결이 끊어지면 모든 브로커에서 대상이 삭제됩니다. 

소비자의 홈 브로커가 충돌하여 소비자가 다시 연결되도록 허용된 경우 이 소비자와 관련된 임시 대상이 모니터링됩니다. 소비자 클라이언트가 특정 시간 내에 다시 연결되지 않으면 클라이언트에서 오류가 발생한 것으로 가정하고 대상이 삭제됩니다. 

자동 작성 

제작자가 만들어졌으나 대상이 없는 경우 대상은 제작자의 홈 브로커에 만들어집니다. 

존재하지 않는 대상에 대해 소비자가 만들어지면 소비자 및 대상 정보는 클러스터 전체로 전파됩니다. 

자동 작성 대상은 관리자에 의해 명시적으로 삭제되거나 다음과 같은 경우 각 브로커에 의해 자동으로 삭제됩니다. 

  • 특정 시간 동안 소비자 또는 메시지가 없는 경우

  • 브로커를 다시 시작하거나 해당 대상에 대한 메시지가 없는 경우