#consul #consul-kv
Вопрос:
Если дать ключ consul KV a/key
, где запущено несколько экземпляров сервера агентов, что произойдет, если:
Два запроса A (установить значение в val-a
) и B (установить значение в val-b
) направляются в конечную точку создания ключа без использования параметров cas
или acquire
для обновления одного и того же ключа a/key
:
- Если A и B выполняются параллельно, может ли значение ключа быть повреждено?
- Или если A приходит немного раньше B, может ли конечное значение все еще стать
val-a
?
Ответ №1:
Данные не будут повреждены, если Консул получит два запроса на запись одновременно. Запросы на запись будут обрабатываться лидером последовательно, поэтому значением a/key
будет либо val-a
или val-b
, в зависимости от того, что будет обработано последним.
Вы можете найти подробную информацию о том, как Консул записывает данные, в документации по Консенсусному протоколу Консула.