В этом документе https://www.rabbitmq.com/reliability.html говорится, что с RabbitMQ можно добиться хотя бы раз гарантии, не используя транзакции.Проблема с транзакциями заключается в том, что они медленные, поэтому пропускная способность резко падает (см. Разделы Подтверждения издателя в https://www.rabbitmq.com/confirms.html).. Можно использовать Подтверждения потребителя и Подтверждения издателя.
С другой стороны, SpringAMQP может автоматически обрабатывать Подтверждения потребителя, используя эту конфигурацию:
spring.rabbitmq.listener.acknowledgeMode=AUTO
Для издателя Подтверждает, что это конфигурация:
spring.rabbitmq.publisherConfirms=true
Я сомневаюсь, достаточно ли этих двух свойств, чтобы гарантироватьдоставка по крайней мере один раз или, если мне нужно сделать что-нибудь еще.