Драйвер Datastax Java для автоматического обнаружения всех узлов для определенного центра обработки данных в его пуле соединений?

Недавно я начал использовать Cassandra в нашем Production environment. У нас есть 24 node cluster с replication factor of 4. Значение 2 copies будет там в each datacenter. Это означает, что у нас есть один перекрестный кластер с 24 nodes, что означает 12 nodes in SLC colo и 12 nodes in PHX colo.

В настоящее время я использую Astyanax client для записи данных в Cassandra database. И я знаю, что у клиента Astyanax есть эта функция для автоматического обнаружения всех узлов в PHX colo или SLC colo cassandra в его пуле соединений, но не для всех узлов.

В Astyanax мы можем использовать что-то вроде следующего:

setLocalDatacenter("DC1")

Теперь мы планируем использовать Java-драйвер Datastax. И я не уверен, есть ли у java-драйвера Datastax эта функция или нет, чтобы автоматически обнаруживать все узлы cassandra в своем пуле соединений только для определенного центра обработки данных, а не для всех центров обработки данных?


person arsenal    schedule 02.10.2013    source источник


Ответы (1)


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

http://www.datastax.com/drivers/java/apidocs/com/datastax/driver/core/policies/DCAwareRoundRobinPolicy.html

person nickmbailey    schedule 02.10.2013
comment
Означает ли это, что Datastax сможет отфильтровать все узлы на основе локального центра обработки данных? - person arsenal; 03.10.2013
comment
Из ссылки: Другими словами, эта политика гарантирует, что ни один хост в удаленном центре обработки данных не будет опрошен, если ни один хост в локальном центре обработки данных не будет доступен. - person nickmbailey; 03.10.2013