При синхронизации объектов между двумя разрозненными системами лучше всего приблизьтесь?

Для выполнения сценариев для файла JAR Spring-Boot что-то вроде этого должно помочь вам:

java -cp /path/to/spring-boot-fat.jar \
    -Dloader.system=true \
    -Dloader.main=liquibase.integration.commandline.Main \
    org.springframework.boot.loader.PropertiesLauncher \
    --changeLogFile=db/changelog/db-changelog-master.xml \
    --driver=org.h2.Driver \
    --url="jdbc:h2:~/h2db/liquibase-test;AUTO_SERVER=TRUE;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE" \
    --password=sa \
    --username=sa \
    updateSQL

edit: это было проверено на Spring-Boot 1.5.x, но я думаю, что оно должно работать снова. тоже.

6
задан Jonas 19 December 2011 в 03:10
поделиться

1 ответ

Самый простой подход: при синхронизации, передача все записи where updated_at >= @last_sync_at. Вниз сторона: этот подход не терпит расфазировку тактовых сигналов очень хорошо вообще.

Вероятно, более безопасно сохранить столбец номера версии, который увеличен каждый раз, когда строка обновляется (так, чтобы расфазировка тактовых сигналов не загрязняла Ваш синхронизирующий процесс), и синхронизировавший в последний раз номер версии (так, чтобы потенциально конфликтующие изменения могли быть определены). Для создания этого эффективным пропускной способностью сохраните кэш в каждой базе данных последней версии отправленным каждому одноранговому узлу репликации так, чтобы только измененные строки были переданы. Если это будет звездообразной топологией, листы могут использовать упрощенную схему, где последняя синхронизировавшая версия хранится в каждой таблице.

Некоторая форма мягких - удаляет, требуются для поддержки синхронизации, удаляет, однако это может быть в форме записи "надгробной плиты", которая содержит только ключ удаленной строки. Надгробные плиты могут только быть безопасно удалены, после того как Вы уверены, что все копии обработали их, иначе для разбросанной копии возможно возродить запись, Вы думали, был удален.

11
ответ дан 9 December 2019 в 22:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: