Как использовать RepublishMessageRecoverer в Мертвых буквах?

У меня есть мертвые буквы для нескольких очередей, которые я использую. В конфигурации я использую:

<bean id="retryAdvice"
    class="org.springframework.amqp.rabbit.config.StatefulRetryOperationsInterceptorFactoryBean">
    <property name="messageRecoverer" ref="rejectAndDontRequeueRecoverer"/>
    <property name="retryOperations" ref="retryTemplate" />
</bean>

<bean id="rejectAndDontRequeueRecoverer" class="org.springframework.amqp.rabbit.retry.RejectAndDontRequeueRecoverer"/>

Если я хочу, чтобы сообщение в очереди недоставленных сообщений имело x-exception-stacktrace, я прочитал, что мне нужно использовать RepublishMessageRecoverer. Используете ли это в мертвых буквах так же просто, как заменить RejectAndDontRequeueRecoverer на RepublishMessageRecoverer в вышеуказанном параметре, или мне нужно написать собственный messageRecoverer?

1 ответ

Решение

Да, просто замените восстановитель. Нормальный RabbitMQ мертвые буквы вообще не используются (сообщение будет подтверждено), и вам не нужно настраивать DLE/DLQ; у вас в контроллере есть полный контроль над тем, куда отправляется сообщение.

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