Транзакции RabbitMQ и БД
-
23-09-2019 - |
Вопрос
Поддерживает ли RabbitMQ сценарий, в котором подтверждение полученного сообщения отправляется при фиксации транзакции БД?
В настоящее время мы отправляем подтверждение после фиксации транзакции БД.Если в промежутке произойдет сбой службы, мы получим дублирование данных — служба снова получит то же сообщение.
Есть ли закономерность для этой проблемы?
Спасибо!
Решение
Да, но имейте в виду, что RabbitMQ использует собственную базу данных для хранения сообщений (на данный момент).Чтобы RabbitMQ отправил подтверждение издателю, используйте режим TX.Это описано в спецификации и в различных частях нашего веб-сайта.
Если вы хотите использовать свою собственную БД, вы можете настроить ее в качестве конечного потребителя сообщений.В этом случае вам следует использовать собственное подтверждение уровня приложения.
Не стесняйтесь отправлять электронное письмо на RabbitMQ-discuss для получения дополнительной информации и вопросов.
ХТХ
Алексис