Поведение Кассандры в контактной точке на основе центра обработки данных - PullRequest
0 голосов
/ 12 апреля 2019

Настройка Cassandra в 3 дата-центрах (dc1, dc2 и dc3), образующих кластер

Запуск приложения Java на dc1.Приложение dc1 имеет коннекторы Cassandra, указывающие на dc1 (ips cassandra в одном только dc1, переданном приложению)

отключение приложения dc1 узлов cassandra выдает исключение в приложении, как

Все хосты пыталисьдля запроса не удалось (хост не был опробован)

Дополнительная информация:

cassandra-driver-core-3.0.8.jar
netty-3.10.5.Final.jar
netty-buffer-4.0.37.Final.jar
netty-codec-4.0.37.Final.jar
netty-common-4.0.37.Final.jar
netty-handler-4.0.37.Final.jar
netty-transport-4.0.37.Final.jar

Keyspace : Network topology
Replication : dc1:2, dc2:2, dc3:2
Cassandra Version : 3.11.4

1 Ответ

0 голосов
/ 12 апреля 2019

Вот некоторые вещи, которые я обнаружил с помощью соединений и Cassandra (и, кстати, я считаю, что Cassandra имеет одну из лучших конфигураций HA в любой базе данных, с которой я работал за последние 25 лет).

1) Убедитесь, что у вас есть все компоненты, указанные в вашем соединении. Вот пример некоторых компонентов подключения, но есть и другие (возможно, вы уже сделали это):

 cluster = Cluster.builder()
    .addContactPoints(nodes.split(","))
    .withCredentials(username, password)
    .withPoolingOptions(poolingOptions)
    .withLoadBalancingPolicy(
            new TokenAwarePolicy(DCAwareRoundRobinPolicy.builder()
                    .withLocalDc("MYLOCALDC")
                    .withUsedHostsPerRemoteDc(1)
                    .allowRemoteDCsForLocalConsistencyLevel()
                    .build()
               )
    ).build();

2) Если не работает весь DC, в котором вы работаете, вы можете получить ошибки. Кассандра не переключается на альтернативные DC, если каждый узел не находится в DC. Если не все узлы не работают и ваш клиент не может удовлетворить настройки CL клиента, вы получите ошибки. Я действительно надеялся, что, когда я некоторое время назад проводил тестирование, что если вы не смогли достичь клиентского CL в ЛОКАЛЬНОМ DC (даже если некоторые узлы в текущем DC работали) и альтернативных DC, это могло бы произойти автоматически, но это не так (так как я в последний раз проверял).

Может, это поможет?

-Джит

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