Запретите RabbitMQ пытаться подключиться к брокеру

У меня есть приложение на основе Spring, которое потребляет сообщения из очереди RabbitMQ, используя Spring AMQP. Поскольку инфраструктура RabbitMQ еще не построена, я использовал фиктивные значения для параметров подключения, таких как хост, порт и т. Д. Когда приложение было развернуто, оно не запускалось, поскольку оно пыталось непрерывно подключаться к брокеру. Как я могу предотвратить это поведение? До сих пор я нашел эту ссылку - https://docs.spring.io/spring-amqp/reference/htmlsingle/ - которая предлагает отключить следующий параметр - automaticRecoveryEnabled на фабрике соединений. Это правильно?

Конфигурация bean для Spring AMQP и сообщения об ошибках, отображаемые при запуске, приведены ниже -

Конфигурация бина -

<bean id="myConnectionFactory" class="com.rabbitmq.client.ConnectionFactory">
    <property name="host" value="myHost" />
    <property name="port" value="myPort" />
    <property name="virtualHost" value="myVirtualHost" />
    <property name="username" value="myUsername" />
    <property name="password" value="myPassword" />
</bean>

<bean id="myRabbitConnectionFactory"
    class="org.springframework.amqp.rabbit.connection.CachingConnectionFactory">
    <constructor-arg type="com.rabbitmq.client.ConnectionFactory"
        ref="myConnectionFactory" />
    <property name="channelCacheSize" value="25" />
</bean>

<rabbit:queue name="myQueue" />

<rabbit:topic-exchange name="myExch">
    <rabbit:bindings>
        <rabbit:binding queue="myQueue"
            pattern="" />
    </rabbit:bindings>
</rabbit:topic-exchange>

<rabbit:listener-container
    connection-factory="myRabbitConnectionFactory" acknowledge="manual">
    <rabbit:listener ref="myReceiver"
        queue-names="myQueue" />
</rabbit:listener-container>

Сообщения об ошибках -

org.springframework.context.ApplicationContextException: Failed to start bean 'org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer#1'; nested exception is org.springframework.amqp.AmqpIllegalStateException: Fatal exception on listener startup
        at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:176)
        at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:51)
        at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:346)
        at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:149)
        at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:112)
        at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:770)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:483)
        at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5118)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5634)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1571)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1561)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: org.springframework.amqp.AmqpIllegalStateException: Fatal exception on listener startup
        at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.doStart(SimpleMessageListenerContainer.java:719)
        at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.start(AbstractMessageListenerContainer.java:532)
        at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:173)
        ... 18 more
Caused by: org.springframework.amqp.rabbit.listener.exception.FatalListenerStartupException: Authentication failure
        at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:438)
        at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1083)
        ... 1 more
Caused by: org.springframework.amqp.AmqpAuthenticationException: com.rabbitmq.client.AuthenticationFailureException: ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For details see the broker logfile.
        at org.springframework.amqp.rabbit.support.RabbitExceptionTranslator.convertRabbitAccessException(RabbitExceptionTranslator.java:57)
        at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:217)
        at org.springframework.amqp.rabbit.connection.CachingConnectionFactory.createConnection(CachingConnectionFactory.java:444)
        at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils$1.createConnection(ConnectionFactoryUtils.java:80)
        at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils.doGetTransactionalResourceHolder(ConnectionFactoryUtils.java:130)
        at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils.getTransactionalResourceHolder(ConnectionFactoryUtils.java:67)
        at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:434)
        ... 2 more
Caused by: com.rabbitmq.client.AuthenticationFailureException: ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For details see the broker logfile.
        at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:339)
        at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:648)
        at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:695)
        at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:208)
        ... 7 more

Jan 11, 2018 4:31:14 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: One or more listeners failed to start. Full details will be found in the appropriate container log file
Jan 11, 2018 4:31:14 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [] startup failed due to previous errors

0 ответов

Другие вопросы по тегам