2013-09-17 2 views
-1

В веб-приложении Java на базе Apache Tomcat данные должны быть вставлены в локальный db и удаленный db, когда я отправил форму. Данные должны храниться/сохраняться, как если бы удаленный db не ответил, как только данные были отправлены. Отправителю следует повторить попытку отправить данные на удаленный db до получения ответа от получателя. С этой целью я должен использовать API (Open Source)? Заранее спасибо.Веб-приложение Java с распределенной базой данных

ответ

0

Существует несколько баз данных, которые автоматически зеркально отражают таблицы (часто называемые кластерами).

Но они добавляют сложность.

Хорошим решением для этого сценария является добавление одной или нескольких таблиц переноса, которая либо содержит копии исходных записей, либо ссылки плюс столбец «состояние передачи».

Тогда вам понадобится задача, которая просматривает эти таблицы и читает все строки с состоянием «новое». После того, как строки добавлены в удаленную базу данных, вы обновите состояние до «done».

Важная часть здесь состоит в том, что строки в состоянии «новый» могут уже существовать в удаленной базе данных. Когда это произойдет, данные должны быть одинаковыми, поэтому вы можете пропустить их.

Причины этого процесса:

  1. Если прервана по какой-либо причине, она будет самовосстановлению.
  2. Его можно прервать в любое время без создания постоянного повреждения (например, поврежденных данных).
  3. Вы можете передавать сложные структуры данных (т. Е. Несколько строк из разных таблиц) без сложной обработки ошибок. Вам может понадобиться дополнительная логика в «новой строке, уже существующей удаленно», но большую часть времени стандарт «сделано, когда он уже существует» достаточно хорош.
  4. Процесс настолько прост, что его трудно сломать.
+0

Спасибо за ваш ответ. Структура таблицы удаленных db может иметь немного отличающуюся структуру от локальной таблицы db. –

+0

Мой подход позволяет вам преобразовывать данные во время импорта. –

Смежные вопросы