В поисках лучшего подхода к проектированию моего потребителя Kafka.В основном, я хотел бы посмотреть, как лучше всего избежать потери данных в случае каких-либо исключений / ошибок при обработке сообщений.
Мой вариант использования такой, как показано ниже.
a) Причина, по которой я использую СЕРВИС для обработки сообщения, - в будущем я планирую написать приложение ERROR PROCESSOR, которое бызапустите в конце дня, который попытается обработать сообщения об ошибках (не все сообщения, но сообщения, которые не удалось из-за каких-либо зависимостей, таких как родительский отсутствует) снова.
b) Я хочу убедиться, что потеря сообщений равна нулю, и поэтому я сохраню сообщение в файл на случай возникновения проблем при сохранении сообщения в БД.
c) В производственной среде могут быть запущены несколько экземпляров пользователей и служб, поэтому существует высокая вероятность того, что несколько приложений попытаются записать в один и тот же файл.
В-1) Является ли запись в файл единственной возможностью избежать потери данных?
В-2) Если это единственный вариант, как сделать так, чтобы несколько приложений записывали в один и тот же файл и читали одновременно?Пожалуйста, подумайте в будущем, когда процессор ошибок будет собран, он может читать сообщения из того же файла, в то время как другое приложение пытается записать в файл.
ПРОЦЕСС ОШИБКИ - Наш источникследуя механике, управляемой событиями, и существует высокая вероятность того, что несколько раз зависимое событие (например, родительская сущность для чего-либо) может быть отложено на пару дней.Поэтому в этом случае я хочу, чтобы мой ПРОЦЕССОР ОШИБКИ обрабатывал одни и те же сообщения несколько раз.