Сервис начисления бонусов падал при деплое, и часть начислений пропала
Сервис бонусов читает очередь RabbitMQ с режимом автоматического подтверждения (autoAck = true). Обработка сообщения занимает около секунды: запрос в базу клиентов и запись начисления. После каждого деплоя поддержка получает жалобы: покупка есть, бонусов нет. В очереди этих сообщений уже нет.
Что записать в требования к потребителю?
- Подтверждать сообщение только после записи начисления
- Сделать очередь durable и сообщения persistent
- Уменьшить prefetch до одного сообщения
- Деплоить сервис только ночью, когда мало покупок
