Какую технологию использовать для предотвращения потери данных?
Дано:
1. База данных PostgreSQL;
2. Сервер сбора данных с оборудования по modbus-tcp;
3. Ненадёжная линия связи между 1 и 2;
4. Сервер сбора данных непрерывно передаёт данные в базу данных.
В данных услових необходимо исключить потерю данных между сервером сбора и базой данных. То есть, если связь прервалась, то на стороне сервера данные должны накапливаться, а после восстановления связи все накопленные данные должны достигнуть базы данных. Источник данных один и приёмник данных тоже один.
Склоняюсь к брокеру сообщений с гарантией доставки, только не могу выбрать, т.к. опыта общения с подобным ПО нет совсем. Рассматривал несколько брокеров:
1. Apache Kafka - оказалось, что подтверждения доставки нет;
2. RabbitMQ - подтверждение есть, но уж очень серьёзный продукт;
3. Apache MQ - подтверждение есть, и вроде попроще на первый взгляд.
А давайте попишем решение на Erlang ?
Будет состоять из 2 частей - приемника и передатчика.
Может использовать UDP. Как очень сложное решение для вашей задачи: https://github.com/loguntsov/reliable_udp
я думаю можно все проще сделать.