Azure Service Bus Premium에 연결하고 Azure Service Bus JMS 라이브러리 를 사용하는 클라이언트 애플리케이션은 아래 엔터티를 사용할 수 있습니다.
대기열
JMS의 큐는 기존 Service Bus 큐와 의미상 비교됩니다.
큐를 만들려면 클래스에서 아래 메서드를 JMSContext 사용합니다.
Queue createQueue(String queueName)
토픽
JMS의 토픽은 기존 Service Bus 토픽과 의미상 비교됩니다.
토픽을 만들려면 클래스에서 아래 메서드를 JMSContext 사용합니다.
Topic createTopic(String topicName)
임시 큐
클라이언트 애플리케이션에 애플리케이션의 수명 동안 존재하는 임시 엔터티가 필요한 경우 임시 큐를 사용할 수 있습니다. 이러한 엔터티는 요청-회신 패턴에서 사용됩니다.
임시 큐를 만들려면 클래스에서 아래 메서드를 JMSContext 사용합니다.
TemporaryQueue createTemporaryQueue()
임시 항목
임시 큐와 마찬가지로 임시 토픽은 애플리케이션의 수명 동안 존재하는 임시 엔터티를 통해 게시/구독을 사용하도록 설정하기 위해 존재합니다.
임시 토픽을 만들려면 클래스에서 아래 메서드를 JMSContext 사용합니다.
TemporaryTopic createTemporaryTopic()
JMS(Java 메시지 서비스) 구독
이러한 구독은 Service Bus 토픽의 구독 과 의미상 유사하지만(즉, 토픽에 존재하고 게시/구독 의미 체계를 사용하도록 설정), Java 메시지 서비스 사양은 지정된 구독에 대한 공유, 공유되지 않음, **지속 성 및 비영구 특성 의 개념을 소개합니다.
비고
아래 구독은 Azure Service Bus JMS 라이브러리를 사용하여 Azure Service Bus에 연결하는 클라이언트 애플리케이션에 대한 Azure Service Bus 프리미엄 계층에서 사용할 수 있습니다.
Azure Portal을 사용하여 지속형 구독만 만들 수 있습니다.
공유 지속성 구독
공유 지속성 구독은 애플리케이션이 구독에서 항상 적극적으로 사용하는지 여부에 관계없이 토픽에 게시된 모든 메시지를 애플리케이션에서 수신하고 처리할 때 사용됩니다.
Service Bus에서 수신하도록 인증된 모든 애플리케이션은 공유 지속성 구독에서 받을 수 있습니다.
공유 지속성 구독을 만들려면 클래스에서 아래 메서드를 JMSContext 사용합니다.
JMSConsumer createSharedDurableConsumer(Topic topic, String name)
JMSConsumer createSharedDurableConsumer(Topic topic, String name, String messageSelector)
공유 내구성 구독은 클래스 JMSContext의 메서드 unsubscribe를 사용하여 삭제되지 않는 한 계속 존재합니다.
void unsubscribe(String name)
공유되지 않는 지속성 구독
공유 지속성 구독과 마찬가지로, 애플리케이션이 구독에서 적극적으로 사용하는지 여부에 관계없이 토픽에 게시된 모든 메시지를 애플리케이션에서 수신하고 처리할 때 공유되지 않는 지속성 구독이 사용됩니다.
그러나 이 구독은 공유되지 않은 구독이므로 구독을 만든 애플리케이션만 구독에서 받을 수 있습니다.
공유되지 않는 지속성 구독을 만들려면 클래스에서 JMSContext 아래 메서드를 사용합니다.
JMSConsumer createDurableConsumer(Topic topic, String name)
JMSConsumer createDurableConsumer(Topic topic, String name, String messageSelector, boolean noLocal)
비고
이 noLocal 기능은 현재 지원되지 않으며 무시됩니다.
공유되지 않는 지속성 구독은 JMSContext 클래스의 unsubscribe 메서드를 사용하여 삭제하지 않는 한 계속 존재합니다.
void unsubscribe(String name)
공유된 비영속적 구독
공유 비구독 구독은 여러 클라이언트 애플리케이션이 적극적으로 사용/받기 전까지만 단일 구독에서 메시지를 수신하고 처리해야 하는 경우에 사용됩니다.
구독은 지속성이 없으므로 지속되지 않습니다. 활성 소비자가 없는 경우 이 구독에서 메시지를 받지 못합니다.
공유 비내구성 구독을 만들려면 JMSContext 클래스의 아래 메서드에 표시된 대로 JmsConsumer을 만드십시오.
JMSConsumer createSharedConsumer(Topic topic, String sharedSubscriptionName)
JMSConsumer createSharedConsumer(Topic topic, String sharedSubscriptionName, String messageSelector)
공유형 비지속적 구독은 활성 소비자들이 그것을 통해 수신하는 동안 계속 존재합니다.
공유되지 않는 비영구적 구독
공유되지 않는 구독은 클라이언트 애플리케이션이 구독에서 메시지를 수신하고 처리해야 할 때 사용되며, 구독에서 적극적으로 사용할 때까지만 사용됩니다. 이 구독, 즉 구독을 만든 클라이언트에는 하나의 소비자만 존재할 수 있습니다.
구독은 지속성이 없으므로 지속되지 않습니다. 활성 소비자가 없는 경우 이 구독에서 메시지를 받지 못합니다.
비공유 비지속 구독을 만들려면, 클래스 JMSContext의 아래 메서드에 표시된 대로 JMSConsumer을(를) 생성하십시오.
JMSConsumer createConsumer(Destination destination)
JMSConsumer createConsumer(Destination destination, String messageSelector)
JMSConsumer createConsumer(Destination destination, String messageSelector, boolean noLocal)
비고
이 noLocal 기능은 현재 지원되지 않으며 무시됩니다.
비공유 비지속성 구독은 활성 소비자가 이를 수신하는 동안 계속 존재합니다.
메시지 선택기
일반 Service Bus 구독 에 대한 필터 및 작업이 있는 것처럼 JMS 구독에 대한 메시지 선택기가 존재합니다.
메시지 선택기는 각 JMS 구독에서 설정할 수 있으며 메시지 헤더 속성에 필터 조건으로 존재할 수 있습니다. 메시지 선택기 식과 일치하는 헤더 속성이 있는 메시지만 배달됩니다. null 값 또는 빈 문자열은 JMS 구독/소비자에 대한 메시지 선택기가 없음을 나타냅니다.
JMS(Java Message Service) 2.0 구독에 대한 추가 개념
클라이언트 범위 지정
JMS(Java Message Service) 2.0 API에 지정된 구독은 특정 클라이언트 애플리케이션/s (적절한 clientId것으로 식별됨)로 범위가 지정될 수도 있고 그렇지 않을 수도 있습니다.
구독 범위가 지정되면 동일한 클라이언트 ID를 가진 클라이언트 애플리케이션에서 만 액세스할 수 있습니다 .
다른 클라이언트 ID(예: clientId2)가 있는 애플리케이션에서 특정 클라이언트 ID(예: clientId1)로 범위가 지정된 구독에 액세스하려고 하면 다른 클라이언트 ID(clientId2)로 범위가 지정된 다른 구독이 만들어집니다.
비고
클라이언트 ID는 null이거나 비어 있을 수 있지만 JMS 클라이언트 애플리케이션에 설정된 클라이언트 ID와 일치해야 합니다. Azure Service Bus 관점에서 null 클라이언트 ID와 빈 클라이언트 ID는 동일한 동작을 갖습니다.
클라이언트 ID가 null로 설정되거나 비어 있는 경우 클라이언트 ID가 null 또는 비어 있는 클라이언트 애플리케이션에서만 액세스할 수 있습니다.
공유 가능성
공유 구독은 여러 클라이언트/소비자(즉, JMSConsumer 개체)가 메시지를 받을 수 있도록 허용합니다.
비고
특정 클라이언트 ID로 범위가 지정된 공유 구독은 여전히 여러 클라이언트/소비자(즉, JMSConsumer 개체)에서 액세스할 수 있지만 각 클라이언트 애플리케이션에는 동일한 클라이언트 ID가 있어야 합니다.
공유되지 않은 구독은 단일 클라이언트/소비자(즉, JMSConsumer 개체)만 해당 구독에서 메시지를 받을 수 있도록 허용합니다. 이미 활성 JMSConsumer가 해당 구독에서 메시지를 수신 대기하는 상태에서 공유되지 않은 구독에 대해 JMSConsumer를 만드는 경우 JMSException이 throw됩니다.
Durability
지속성 구독은 지속되며 애플리케이션(JMSConsumer)이 메시지를 사용하는지 여부에 관계없이 토픽에서 메시지를 계속 수집합니다.
비지속성 구독은 지속되지 않으며 애플리케이션(JMSConsumer)이 해당 구독에서 메시지를 사용하는 한 토픽에서 메시지를 수집합니다.
클라이언트 범위 구독의 표현
클라이언트 범위(JMS) 구독이 기존 구독과 공존해야 하는 경우 JMS(클라이언트 범위) 구독을 나타내는 방식은 다음 형식을 사용합니다.
- <SUBSCRIPTION-NAME>$<CLIENT-ID>$D (지속성 구독의 경우)
- <SUBSCRIPTION-NAME>$<CLIENT-ID>$ND (대체 불가능한 구독의 경우)
$ 구분 기호는 다음과 같습니다.
다음 단계
Service Bus 메시징 사용에 대한 자세한 내용 및 예제는 다음 고급 항목을 참조하세요.