Я пытаюсь сделать некоторую интеграцию между двумя системами, и у меня есть некоторые проблемы, когда дело доходит до синхронизации данных.наилучшая практика для синхронизации данных в nodejs
Я использую nodejs и база данных MongoDB или firebase.
Сценарий описывается, как показано ниже:
- SYSTEMA с дБА
- SYSTEMB с DBB
Выполните следующие действия:
SYSTEMA посылает запрос (POST или PUT any) в systemB,
body
выглядит следующим образом:{ ..... fieldA1: valueA1, fieldA2: valueA2 ..... }
затем SYSTEMB необходимо обновить несколько полей (fieldB1, fieldB2) в DBB по данным SYSTEMA, как это:
fieldB1: valueA1
fieldB2: valueA2
после ОБА
fieldB1
иfieldB2
являются обновлено успешно, затем выполните больше логики
Я использую async
для управления асинхронным процессом. Мой код для реализации этих 3 шага:
async.waterfall([
function (callback) {
//get valueA1 of fieldA1 and valueA2 of fieldA2
},
async.parallel([
function (callback) {
//set valueA1 to fieldB1
},
function (callback) {
//set valueA2 to fieldB2
}
], function (err, result) {
//more logic here
})
], function (err, result) {
//more logic here
})
С fieldB1
и fieldB2
должны быть обновлены одновременно, либо ситуация, когда не в состоянии обновить fieldB1
или fieldB2
приведет к несогласованности данных, что не является правильным результатом ,
Однако async.parallel
не может гарантировать, что отказ в обновлении будет откатом или не позволит другим пользователям обновить право? Есть ли способ идеально поддерживать постоянство данных BOTH при обновлении fieldB1
и fieldB2
?
Спасибо так много Франка! ваша часть обновления нескольких местоположений кажется похожей на то, с чем я встречался, и я действительно получаю от этого помощь. –