RabbitMQ - не найдена очередь для остановки Spring-сервера - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть приложение Spring, которое потребляет сообщения от rabbitmq.Тем не менее, сервер Spring не запускается, когда сервер RabbitMQ не работает.

Ниже приведено исключение,

Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; protocol method: #method<connection.close>(reply-code=530, reply-text=NOT_ALLOWED - vhost test_queue not found, class-id=10, method-id=40)
        at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66) ~[amqp-client-4.0.1.jar:4.0.1]
        at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:32) ~[amqp-client-4.0.1.jar:4.0.1]
        at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:366) ~[amqp-client-4.0.1.jar:4.0.1]
        at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:229) ~[amqp-client-4.0.1.jar:4.0.1]
        at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:117) ~[amqp-client-4.0.1.jar:4.0.1]
        at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:381) ~[amqp-client-4.0.1.jar:4.0.1]
        at com.rabbitmq.client.impl.recovery.RecoveryAwareAMQConnectionFactory.newConnection(RecoveryAwareAMQConnectionFactory.java:62) ~[amqp-client-4.0.1.jar:4.0.1]

Существует ли способ запустить приложение Spring даже при отсутствии очерединайден?

Конфигурация пружины.

<rabbit:connection-factory id="connectionFactory" host="${host}" port="${port}" username="${rabbitmq.username}" password="${rabbitmq.password}" virtual-host="${rabbitmq.virtualhost}"/>

    <rabbit:queue name="${rabbitmq.create.queue}" />


    <rabbit:template queue="${rabbitmq.feedback.queue}"
    exchange="${rabbitmq.feedback.exchange}" id="amqpTemplate"
    connection-factory="connectionFactory" />

    <bean id="xyzConsumerListener" class="com.sample.rabbitmq.listener.XyzConsumerListener">
    </bean>

    <rabbit:listener-container id="myListenerContainer" connection-factory="connectionFactory">
        <rabbit:listener ref="xyzConsumerListener" queue-names="${rabbitmq.create.queue}"/>
    </rabbit:listener-container>

С уважением, Фархан

1 Ответ

0 голосов
/ 11 февраля 2019

В сообщении об ошибке указывается, что он не может найти виртуальный хост с именем test_queue.

. Проверьте, существует ли виртуальный хост, или используйте / в качестве вашего виртуального хоста.

В этом конкретном случаеслучай, я не думаю, что приложение запустится, если vhost не найден.Кроме того, если вы настроили RMQ так, чтобы он не разрешал немедленное создание очереди с предоставленными учетными данными, он также может сразу выйти из строя, так как это ситуация, когда он не может восстановиться после.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...