다음을 통해 공유


JMS에서 Azure Service Bus 사용

이 문서는 버전 4.14.0 ✔️ 버전 5.8.0에 적용됩니다. ✔️

이 문서에서는 Spring JMS 프레임워크에 통합된 JMS API와 함께 Azure Service Bus를 사용하는 방법을 설명합니다.

AMQP broker에 대한 로그인 사용자 이름, 암호 및 원격 URI로 구문 분석되는 Azure Service Bus 연결 문자열 제공해야 합니다.

종속성 설정

Azure Service Bus를 사용하도록 Spring JMS 애플리케이션을 마이그레이션하려는 경우 다음 종속성을 추가합니다.

<dependency>
    <groupId>com.azure.spring</groupId>
    <artifactId>spring-cloud-azure-starter-servicebus-jms</artifactId>
</dependency>

구성

다음 표에서는 Spring JMS 지원을 사용할 때 구성 가능한 속성에 대해 설명합니다.

속성 설명
spring.jms.servicebus.connection-string Azure Service Bus는 연결 문자열 직접 제공하려는 경우 연결 문자열.
spring.jms.servicebus.topic-client-id JMS 클라이언트 ID입니다. 콩에 topicJmsListenerContainerFactory 대해서만 작동합니다.
spring.jms.servicebus.enabled Servive Bus JMS 자동 구성을 사용할지 여부를 나타내는 값입니다. 기본값은 true입니다.
spring.jms.servicebus.idle-timeout 메시지가 배달되지 않을 때 클라이언트에서 Service Bus가 연결을 활성 상태로 유지할 것으로 예상하는 시간을 나타내는 연결 유휴 시간 제한 시간입니다. 기본값은 2m입니다.
spring.jms.servicebus.pricing-tier Azure Service Bus 가격 계층입니다. 지원되는 값은 프리미엄표준입니다. 프리미엄 계층은 JMS(Java Message Service) 2.0을 사용하고 표준 계층은 JMS 1.1을 사용하여 Azure Service Bus와 상호 작용합니다.
spring.jms.servicebus.listener.reply-pub-sub-do기본 회신 대상 유형이 토픽인지 여부를 나타내는 값입니다. 콩에 topicJmsListenerContainerFactory 대해서만 작동합니다.
spring.jms.servicebus.listener.phase 이 컨테이너를 시작하고 중지해야 하는 단계입니다.
spring.jms.servicebus.listener.reply-qos-settings 회신을 QosSettings 보낼 때 사용할 수 있도록 구성합니다.
spring.jms.servicebus.listener.subscription-durable 구독을 지속성으로 만들지 여부를 나타내는 값입니다. 콩에 topicJmsListenerContainerFactory 대해서만 작동합니다. 기본값은 true입니다.
spring.jms.servicebus.listener.subscription-shared 구독을 공유할지 여부를 나타내는 값입니다. 콩에 topicJmsListenerContainerFactory 대해서만 작동합니다.
spring.jms.servicebus.pool.block-if-full 연결이 요청되고 풀이 가득 찼을 때 차단할지 여부를 나타내는 값입니다. 대신 throw하려면 false로 JMSException 설정합니다.
spring.jms.servicebus.pool.block-if-full-timeout 풀이 여전히 가득 찬 경우 예외를 throw하기 전의 차단 기간입니다.
spring.jms.servicebus.pool.enabled 일반ConnectionFactory이 아닌 생성해야 하는지 여부를 JmsPoolConnectionFactory 나타내는 값입니다.
spring.jms.servicebus.pool.idle-timeout 연결 풀 유휴 시간 제한입니다.
spring.jms.servicebus.pool.max-connections 풀된 연결의 최대 수입니다.
spring.jms.servicebus.pool.max-sessions-per-connections 풀의 연결당 최대 풀된 세션 수입니다.
spring.jms.servicebus.pool.time-between-expiration-검사 유휴 연결 제거 스레드의 실행 간에 절전 모드로 전환할 시간입니다. 음수이면 유휴 연결 제거 스레드가 실행되지 않습니다.
spring.jms.servicebus.pool.use-anonymous-producers 익명 MessageProducer 인스턴스를 하나만 사용할지 여부를 나타내는 값입니다. 필요할 때마다 만들 MessageProducer 도록 false 설정합니다.
spring.jms.servicebus.prefetch-policy.all 이 Service Bus 네임스페이스의 프리페치 옵션에 대한 대체 값입니다. 기본값은 0입니다.
spring.jms.servicebus.prefetch-policy.durable-topic-prefetch 지속성 토픽의 프리페치 수입니다. 기본값은 0입니다.
spring.jms.servicebus.prefetch-policy.queue-browser-prefetch 큐 브라우저의 프리페치 수입니다. 기본값은 0입니다.
spring.jms.servicebus.prefetch-policy.queue-prefetch 큐의 프리페치 수입니다. 기본값은 0입니다.
spring.jms.servicebus.prefetch-policy.topic-prefetch 토픽의 프리페치 수입니다. 기본값은 0입니다.

참고 항목

Spring JMS 일반 구성은 간단히 생략됩니다.

자세한 내용은 Spring JMS 문서를 참조 하세요.

기본 사용법

Service Bus 연결 문자열 사용

Spring JMS 애플리케이션용 Service Bus에 연결하는 가장 간단한 방법은 연결 문자열 사용하는 것입니다.

다음 속성을 추가하면 좋습니다.

spring:
  jms:
    servicebus:
      connection-string: ${AZURE_SERVICEBUS_CONNECTION_STRING}
      pricing-tier: ${PRICING_TIER}

참고 항목

기본 설정 ConnectionFactoryCachingConnectionFactory캐싱과 MessageProducer 캐싱을 추가하는 Session 것입니다. 의 연결 풀링 기능을 JmsPoolConnectionFactory활성화하려면 .로 true설정합니다spring.jms.servicebus.pool.enabled. 구성 섹션에서 다른 풀링 구성 옵션(접두사를 spring.jms.servicebus.pool.가진 속성)을 찾을 수 있습니다.

샘플

자세한 내용은 GitHub의 azure-spring-boot-samples 리포지토리를 참조하세요.