Предположим, есть два микросервиса: A и B. Каждый имеет свои собственные базы данных.
A имеет базу данных со следующей схемой:
{
"id": "unique id for the user",
"name": "the name of the user",
"email": "the email of the user",
"address": "the address of the user"
}
, а B имеет следующую схему:
{
"userId": "unique id for the user",
"email": "the email of the user"
}
всякий раз, когда я вставляю что-то в базу данных А, отправляется событие, и B в конце концов получает его и сохраняет некоторые данных, полученных из события А (в настоящее время идентификатор пользователя и его адрес электронной почты). ).
Все отлично, и в базе данных B есть идентификатор пользователя и адрес электронной почты каждого зарегистрированного пользователя.
Теперь по какой-то причине мне нужно, чтобы B также имел адрес каждого пользователя, поэтому B Схема базы данных будет выглядеть следующим образом:
{
"userId": "unique id for the user",
"email": "the email of the user",
"address": "the address of the user"
}
Теперь у каждого пользователя в базе данных B может быть поле адреса, но пока он будет нулевым.
Мой вопрос: Каковы подходы, чтобы привести базу данных B в соответствие с A (то есть, как мне обновить каждого пользователя B, чтобы также заполнить адрес)?
Я знаю, что могу обновить свое событие и теперь включить адрес , но это будет только работа k для новых пользователей старые будут иметь нулевые адреса. Стоит ли сканировать всю базу данных и вручную отправлять событие для каждого пользователя?