Reactor RabbitMQ: восстановиться после тайм-аута подтверждения?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Reactor RabbitMQ: восстановиться после тайм-аута подтверждения?

Сообщение Anonymous »

Каков подходящий способ восстановления таймаутов подтверждения доставки с помощью Reactor RabbitMQ?
Мы используем клиентскую библиотеку Reactor RabbitMQ, настроенную с помощью ConsumerManualAck. Время от времени в наших журналах мы наблюдаем следующую ошибку:

c.r.c.ShutdownSignalException: ошибка канала; метод протокола: #method(reply-code=406, report-text=PRECONDITION_FAILED — истекло время ожидания подтверждения доставки на канале 5. Используемое значение таймаута: 1800000 мс. Это значение таймаута можно настроить, см. руководство по документации для потребителей. узнайте м...

После этого заявления (предположительно зарегистрированного этим утверждением) канал немедленно отключается, Reactive Flux завершается и, следовательно, обработка сообщений прекращается.
Клиент был настроен с обработчиком исключений повторной попытки в попытке уменьшить количество сбоев соединения:

Код: Выделить всё

Receiver receiver = RabbitFlux.createReceiver();

ConsumeOptions consumeOptions = new ConsumeOptions()
.exceptionHandler(new ExceptionHandlers.RetryAcknowledgmentExceptionHandler(
Duration.ofSeconds(10),
Duration.ofMillis(200),
ExceptionHandlers.CONNECTION_RECOVERY_PREDICATE
));

receiver.consumeManualAck("queue_name", consumeOptions)
.subscribe(delivery -> {
// message processing omitted
// acknowledge message
delivery.ack();
});
Однако мы, должно быть, что-то упустили из виду, поскольку проблема все еще наблюдается время от времени.
В поисках решения в этом ответе SO говорится, что можно изменить значение таймаута. Однако это не решит проблему, поскольку поток все равно будет отключаться, хотя и с другой частотой.

Подробнее здесь: https://stackoverflow.com/questions/791 ... nt-timeout
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»