2013-03-14 3 views
2

Я использую драйвер Cassandra CQL/JDBC, который я получил от google code, но он, похоже, не дает мне указать имя кластера - есть ли способ?Установить имя кластера при использовании драйвера Cassandra CQL/JDBC

Я использую имена кластера, чтобы гарантировать, что я не запускаю команды против живой системы, у меня есть другое имя кластера для моих систем dev.

Редактировать: Чтобы уточнить, у меня есть два полностью отдельных кластера Cassandra, один живой и один для теста. У них разные имена кластера, чтобы я случайно не запускал тестовый код, предназначенный для тестового кластера в реальном кластере. Поэтому любой клиент, которого я должен использовать, должен позволить мне установить имя кластера. Гектор делает это.

ответ

1

Нет встроенной защиты для проверки имен кластеров для клиентов Cassandra. Он создан для обеспечения того, чтобы узлы из разных кластеров не пытались объединиться, а не чтобы клиенты подключались к правильному кластеру. Можно было бы добавить эту проверку клиенту, хотя (поскольку имя кластера доступно клиенту), но я не знаю, какие клиенты делают это.

Я настоятельно рекомендую использовать брандмауэр в разных условиях, чтобы избежать такой ошибки. Если это невозможно, вы должны выбрать разные порты, чтобы избежать путаницы. Измените это с помощью параметра «rpc_port» в cassandra.yaml.

+0

Самый распространенный способ отделить Кассандру, похоже, от брандмауэра. – ChucK

3

Вам нужно будет зеркалировать данные на двух разных кластерах. Вы не можете получить доступ к тому же кластеру с разными именами.

Чтобы переименовать кластер (из тестового кластера по умолчанию), вы редактируете файл конфигурации cassandra, содержащийся в location/of/cassandra/conf/cassandra.yaml. Его верхняя линия, если вам нужно больше деталей посмотреть на datastax configuration documentation и объяснение.

Смежные вопросы