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}
참고 항목
기본 설정 ConnectionFactory
은 CachingConnectionFactory
캐싱과 MessageProducer
캐싱을 추가하는 Session
것입니다. 의 연결 풀링 기능을 JmsPoolConnectionFactory
활성화하려면 .로 true
설정합니다spring.jms.servicebus.pool.enabled
. 구성 섹션에서 다른 풀링 구성 옵션(접두사를 spring.jms.servicebus.pool.
가진 속성)을 찾을 수 있습니다.
샘플
자세한 내용은 GitHub의 azure-spring-boot-samples 리포지토리를 참조하세요.