Подключиться к Cassandra в Kubernetes с помощью java-драйвера

Мы запускаем кластер Cassandra, используя диаграмму управления k8ssandra, он предоставляет несколько сервисов, наши клиентские приложения используют Java-драйвер datastax и работают в том же кластере k8s, что и кластер Cassandra (это этап тестирования).

      CqlSessionBuilder builder = CqlSession.builder();

Каков рекомендуемый способ подключения приложения (через Драйвер) к Cassandra?

Добавить все узлы?

      for (String node :nodes) {
   builder.addContactPoint(new InetSocketAddress(node, 9042));
}

Добавить только адрес службы?

       builder.addContactPoint(new InetSocketAddress(service-dns-name , 9042))

Добавление адреса службы как неразрешенного? (это вообще сработает?)

       builder.addContactPoint(InetSocketAddress.createUnresolved(service-dns-name , 9042))

2 ответа

Чарт k8ssandra Helm развертывает объект CassandraDatacenter и оператор cass в дополнение к ряду других ресурсов. cass-operator отвечает за управление CassandraDatacenter. Он создает StatefulSet(s) и создает несколько автономных сервисов, включая:

  • служба центра обработки данных
  • сервис семян
  • все службы стручков

Служба семян разрешает только пакеты, которые являются семенами. Его имя имеет вид . Из-за эфемерной природы подов оператор cass может назначать различные узлы C* в качестве исходных узлов. Не используйте начальный сервис для подключения клиентских приложений.

Служба всех модулей разрешает доступ ко всем модулям Cassandra независимо от того, находятся ли они в состоянии готовности. Его имя имеет вид . Эта услуга предназначена для облегчения мониторинга. Не используйте службу all pods для подключения клиентских приложений.

Служба центра обработки данных преобразуется в готовые модули. Его имя имеет вид Это служба, которую вы должны использовать для подключения клиентских приложений. Не используйте IP-адреса модулей напрямую, так как они со временем будут меняться.

Добавить все узлы?

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

Добавить только адрес службы?

Ваш второй вариант привязки к сервисному адресу — это все, что вам нужно сделать. Хорошая вещь в адресе службы заключается в том, что он будет учитывать изменение/удаление IP-адресов в кластере.

Другие вопросы по тегам