#cassandra
#cassandra
Вопрос:
Мы настроили многодатацентровую репликацию в Cassandra и определили, что нам нужно настроить уровень согласованности как Each_Quorum (см. Документы). Но я не могу понять, где именно мне нужно настроить этот уровень согласованности, пожалуйста, помогите.
Заранее спасибо.
Комментарии:
1. Согласованность настраивается на уровне клиента, какой клиент вы используете для подключения к cassandra?
2. Наше требование — использовать его в репликации с несколькими центрами обработки данных, в которой клиент не участвует. В документе, на который я ссылался здесь, говорится: «Вы можете настроить согласованность для кластера, центра обработки данных или для каждой отдельной операции чтения или записи. Согласованность между участвующими узлами может быть установлена глобально, а также контролироваться на основе каждой операции «. Итак, наше требование — настроить глобально.
Ответ №1:
Согласованность определяется на уровне клиента.
Когда в документации указано:
Вы можете настроить согласованность для кластера, центра обработки данных или для отдельной операции чтения или записи.
это означает, что разные уровни имеют разную степень детализации ALL
и EACH_QUORUM
будут возвращать значение, как только оно получит консенсус от всех центров обработки данных (другими словами, в масштабах кластера); LOCAL_ONE
и LOCAL_QUORUM
может ограничиваться проверкой узлов в одном центре обработки данных с коэффициентом репликации 1, а уровень согласованности ONE
гарантирует, чтобудет учитываться только один узел. У вас могут быть разные уровни согласованности между операциями чтения и записи
Согласованность между участвующими узлами может быть установлена глобально, а также контролироваться для каждой операции.
Это также относится к стороне драйвера; например, для Java с драйвером Datastax вы можете определить уровень согласованности в Session
интерфейсе с помощью атрибута consistencyLevel
MappingManager или указать согласованность для каждого из запросов с execute()
помощью метода.