Давайте предположим, что у меня есть данные в Кафке теме employee-topic
, 2 SpringBoot экземпляров spring1
и spring2
того же приложения, которые хранятся / извлекаются в /из MongoDB
Предположим, что у нас есть таблица employee
, содержащая два поля: id
и amount
employee
, заполненные следующим образом:
+---+---------+
| id| amount|
+---+---------+
| 1| 200|
+---+---------+
В теме Kafka у нас есть 2 сообщения, содержащие 2 суммы: "amount1": -200
и "amount1": -100
Предположим, что наше весеннее приложение будет использовать spring1
для получения данных. содержащие "amount1"
и spring2
для использования данных, содержащих "amount2"
Цель состоит в том, чтобы обновить значение в таблице employee
.
При обновлении значения в MongoDB у меня может быть 2 возможности:
spring1
обновить до spring2
, чтоозначает, что: spring1
читает 200, введите сумму (-200 + 200) и обновите сумму до 0, spring1
выполните ту же операцию: (-100 + 0) и сумма станет -100.
+---+---------+
| id| amount|
+---+---------+
| 1| -100|
+---+---------+
spring1
обновление после spring2
, что означает, что: spring2
читает 200, делает сумму (-100 + 200) и затем: spring1
выполните ту же операцию (-200 + (-100)), и сумма станет -300
+---+---------+
| id| amount|
+---+---------+
| 1| -300|
+---+---------+
Это случайное поведение, как я могу установить правило, не влияя на производительность, чтобы установитьнеобходимое поведение.
Заранее спасибо за помощь.