springapplication.properties에서 토끼 대기열 수신을 비활성화하는 중
봄에 application-development.properties 파일을 생성하여 개발 환경을 정의하고 싶습니다.이 환경에서는 디버깅 등을 수행하는 동안 준비 대기열을 방해하지 않기 때문에 토끼 대기열 수신을 사용하지 않도록 설정하려고 합니다.
문제는 - 이를 제어하는 속성을 찾을 수 없다는 것입니다.활성화된 속성이나 활성화된 속성이 없습니다.
Spring 문서에서 찾은 속성은 다음과 같습니다.
# RABBIT (RabbitProperties)
spring.rabbitmq.addresses= # connection addresses (e.g. myhost:9999,otherhost:1111)
spring.rabbitmq.dynamic=true # create an AmqpAdmin bean
spring.rabbitmq.host= # connection host
spring.rabbitmq.port= # connection port
spring.rabbitmq.password= # login password
spring.rabbitmq.requested-heartbeat= # requested heartbeat timeout, in seconds; zero for none
spring.rabbitmq.listener.acknowledge-mode= # acknowledge mode of container
spring.rabbitmq.listener.concurrency= # minimum number of consumers
spring.rabbitmq.listener.max-concurrency= # maximum number of consumers
spring.rabbitmq.listener.prefetch= # number of messages to be handled in a single request
spring.rabbitmq.listener.transaction-size= # number of messages to be processed in a transaction
spring.rabbitmq.ssl.enabled=false # enable SSL support
spring.rabbitmq.ssl.key-store= # path to the key store that holds the SSL certificate
spring.rabbitmq.ssl.key-store-password= # password used to access the key store
spring.rabbitmq.ssl.trust-store= # trust store that holds SSL certificates
spring.rabbitmq.ssl.trust-store-password= # password used to access the trust store
spring.rabbitmq.username= # login user
spring.rabbitmq.virtual-host= # virtual host to use when connecting to the broker
Spring 프로파일을 사용하여 수신기 정의가 포함된 amqp-context.xml beans를 로드하지 않고 추가하는 방법을 찾았습니다.<beans profile="development"> .. </beans>
xml에 대한 설명이지만 다른 프로필을 정의해야 하기 때문에 훨씬 덜 유연하며, 포함된 프로필을 변경하는 것은 코드를 변경하는 것과 관련이 있습니다.
편집 내 amqp-context.xml의 모양은 다음과 같습니다.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:task="http://www.springframework.org/schema/task"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:rabbit="http://www.springframework.org/schema/rabbit"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/rabbit
http://www.springframework.org/schema/rabbit/spring-rabbit-1.3.xsd">
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="ignoreResourceNotFound" value="true" />
<property name="locations">
<list>
<value>application.${env:xxxx}.properties</value>
</list>
</property>
</bean>
<rabbit:connection-factory id="connectionFactory" host="${rabbit_host}"
virtual-host="${rabbit_virtual_host}" username="${rabbit_username}" password="${rabbit_password}" port="${rabbit_port}"/>
<!-- Connection Factory -->
<bean id="rabbitConnFactory"
class="org.springframework.amqp.rabbit.connection.CachingConnectionFactory">
</bean>
<!-- Spring AMQP Template -->
<bean id="template" class="org.springframework.amqp.rabbit.core.RabbitTemplate">
<property name="connectionFactory" ref="connectionFactory" />
<property name="routingKey" value="${my_queue}" />
<property name="queue" value="${my_queue}" />
</bean>
<!-- Spring AMQP Admin -->
<bean id="admin" class="org.springframework.amqp.rabbit.core.RabbitAdmin">
<constructor-arg ref="rabbitConnFactory" />
</bean>
<rabbit:listener-container connection-factory="connectionFactory" requeue-rejected="false" concurrency="10">
<rabbit:listener ref="ProcessMessage"
queue-names="${queue_name}" />
</rabbit:listener-container>
<bean id="ProcessStuff" class="Process" />
</beans>
application.properties 파일에서 직접 대기열 수신을 관리하는 방법에 대해 아는 사람이 있습니까?부탁드려도 될까요?
부팅 1.3을 기다리는 대신 애플리케이션 개발에 사용자 고유의 키를 추가할 수 있습니다.
rabbit.auto-startup=false
그런 다음 amqp-context.xml을 다음과 같이 수정합니다.
<rabbit:listener-container connection-factory="connectionFactory" requeue-rejected="false" concurrency="10" auto-startup=${rabbit.auto-startup}>
잘 잡았습니다!스프링 부트 1.3에서 다룰 #3587을 만들었습니다.
감사합니다!
이것은 "spring.autoconfigure.exclude: org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration
도움이 안 됩니다.그래서 모든 속성을 제거합니다.spring.cloud.stream.*
그리고 봄.slmq.sl.sling.sling.로그백에도 추가
<logger name="org.springframework.amqp" level="ERROR"/>
<logger name="org.springframework.boot.actuate.amqp" level="ERROR"/>.
속성을 제거하면 스프링이 많은 WARN 로그를 출력하기 때문입니다.
spring.rabbitmq.listener.direct.auto-startup=false
spring.rabbitmq.listener.simple.auto-startup=false
spring.rabbitmq.listener.stream.auto-startup=false
언급URL : https://stackoverflow.com/questions/31589401/disabling-the-listening-to-rabbit-queues-from-spring-application-properties
'source' 카테고리의 다른 글
롬복 + 잭슨 불변량 (0) | 2023.07.21 |
---|---|
math.log에서 ValueError: math domain error가 발생하는 이유는 무엇입니까? (0) | 2023.07.21 |
정적 컨텐츠 스프링 부트 응용 프로그램 다시 로드 (0) | 2023.07.21 |
Spring Kafka를 사용하여 한 번의 트랜잭션으로 두 개의 Kafka 주제에 쓰기 (0) | 2023.07.21 |
오라클에서 인덱스 생성 시간 추정 (0) | 2023.07.21 |