Кластер Cassandra с полной репликацией каждого узла

Привет, я новичок в Кассандре. У меня есть кластер Cassandra с двумя узлами. По причинам, навязанным интерфейсом, мне нужно...

  1. Полная репликация всех данных на каждом из двух узлов.
  2. Возможные последовательные записи. Таким образом, узел, на который записывается запись, сразу же ответит подтверждением внешнему интерфейсу. Не синхронизируется при репликации

Может ли кто-нибудь сказать мне, возможно ли это? Это делается в файле YAML? Я знаю, что там есть свойства для согласованности, но я не вижу, чтобы какой-либо из разделителей соответствовал моим потребностям. Где я могу установить коэффициент репликации?

Спасибо


person Rob McFeely    schedule 03.04.2014    source источник


Ответы (1)


Вы устанавливаете коэффициент репликации во время создания пространства ключей. Итак, если вы используете (и планируете использовать в будущем) единую настройку центра обработки данных, вы создаете пространство ключей с помощью cqlsh, например так

CREATE KEYSPACE "Excalibur"
WITH REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor' : 3};

Ознакомьтесь с документацией по создать пространство ключей. Как это обрабатывается внутри, связано с snitch определением кластера и параметр стратегии, определенный для каждого ключевого пространства. В случае описанной выше SimpleStrategy это просто предполагает кольцевую топологию вашего кластера и размещает данные в этом кольце по часовой стрелке (см. это).

Что касается согласованности, вы можете использовать разные уровни согласованности для операций записи и чтения в вашем клиенте/драйвере во время каждой операции:

Cassandra расширяет концепцию возможной согласованности, предлагая настраиваемую согласованность — для любой заданной операции чтения или записи клиентское приложение решает, насколько согласованными должны быть запрошенные данные.

Читать документ

Если вы используете Java в своих клиентах и ​​драйвер Java DatatStax, вы можете задайте уровень согласованности, используя

QueryOptions.setConsistencyLevel(ConsistencyLevel consistencyLevel) 

«Один» — это настройка по умолчанию.

надеюсь, это поможет

person John    schedule 03.04.2014
comment
Однако стратегия топологии сети не является хорошим примером для этого случая :-) Я думаю, что SimpleStrategy достаточно. Он также должен прочитать это - person Jacek L.; 04.04.2014
comment
Спасибо за ответ очень понятно. Я попробую это. - person Rob McFeely; 04.04.2014