Как настроить балансировку нагрузки в Cassandra для 2 дата-центров? Как упомянуть addcontactpoints? Я использую политики TokenAware и DCAwareroundrobin - PullRequest
0 голосов
/ 18 апреля 2019

У меня есть Java-клиент, подключающийся к Cassandra Cluster, который имеет 2 центра данных.Топология - это топология ньюторка.Нужно сбить 1 DC за один раз, чтобы выполнить некоторые действия по обслуживанию Кассандры.Протестировано на 1 DC.Возможность подключения к Cassandra, когда удаленный DC отключен, но не с локальным DC.Использование LOCAL_Quorum для чтения.

Проверено на 1 DC.Возможность подключения к Cassandra, когда удаленный DC отключен, но не с локальным DC.Использование LOCAL_Quorum для чтения.

    Cluster cluster = null;
    Builder builder;
    try {

        builder = Cluster.builder().addContactPoints(clusterURL.getPrimaryClusterCollection())
                .withoutMetrics()
                .withoutJMXReporting()
                .withRetryPolicy(DowngradingConsistencyRetryPolicy.INSTANCE)
                .withPort(9042)
                .withLoadBalancingPolicy(new TokenAwarePolicy(DCAwareRoundRobinPolicy.builder().build()))
                .withCredentials(new String(user.getUser()), new String(user.getPassword()));

// clusterURL.getPrimaryClusterCollection () выводит список имен хостов Cassandra, которые находятся в локальном DC.

  1. Когда локальный DC отключен, я хочуприложение должно иметь возможность подключения к удаленному DC.Но это не удалось после попытки подключения к именам хостов, перечисленным в clusterURL.getPrimaryClusterCollection ().

  2. Если я жестко закодирую имена хостов из обоих DC в addContactPoints, я могу подключиться к Cassandra, сохранив локальный DCdown.

builder = Cluster.builder (). addContactPoints ("local-DC-host1.homedepot.com", "local-DC-host2.homedepot.com", "remote-DC-host1.homedepot.com», "remote-DC-host2.homedepot.com")

Вопрос в том, как убедиться, что я смогу подключиться к удаленному DC, если мой локальный DC не работает, не сохраняя оба имени хоста DC Cassandra в addContactPoints.Есть ли дополнительная опция, которую мне нужно использовать?Я думаю, что хранить имена хостов обоих DC в точках addcontact не очень хорошая идея.
...