По сути, вам нужно иметь некоторый уникальный идентификатор в данных, которые вы извлекаете из исходной базы данных. Может быть, это то, что уже было определено как первичный ключ. Или, может быть, в таблице есть поле для отметки времени. Или, может быть, какая-то комбинация полей будет уникальной.
Как только вы определите это, когда вы помещаете данные в цель, отклоните любой ключ, который уже находится в цели. Вы можете использовать функции «идемпотентности» Кэмела, но если вам удастся проверить ключ в целевой базе данных, вам, вероятно, больше ничего не понадобится.
Если вам нужно принять решение о том, что отправить , но у вас нет доступа к вашей удаленной базе данных из приложения № 1, вам нужно будет вести учет на другой стороне брандмауэра. .
Это необходимо сделать, даже если соединение не прерывалось каждые 15 минут ... потому что у вас могут быть сбои по другим причинам.
Если у вас может быть база данных Idempotency для Приложения № 1, другой подход может состоять в том, чтобы перенести данные из локальной базы данных в какую-то другую локальную таблицу и прочитать из нее. Затем вы опрашиваете эту другую таблицу и удаляете каждый раз, когда отправка прошла успешно.
Пример:
Похоже, вы используете MySql. Если обе базы данных находятся на MySql, вы можете изучить MySql-репликацию данных , а не использовать свое собственное приложение с Camel.