Это выполнимо, но сложно.
Кассандра знает, какие узлы являются частью кластера на основе имени кластера. Если ваше кластерное имя не одинаково для обоих кластеров, первым шагом будет переименование ваших кластеров с тем же именем.
Второй шаг - взять один кластер в качестве родительского кластера, где вы присоедините к нему другие узлы. Назовем это родительским кластером, а другой - объединяющим кластером. На этом этапе определите семейства ключей и столбцов, которые существуют в кластере соединения, будут такими же, как родительский. На этом этапе у вашего родительского кластера есть определение ключа, но нет данных из кластера соединений. С другой стороны, в кластере соединения вам нужно будет определить ключевое пространство, существующее в родительском кластере.
Ваши узлы в обоих кластерах должны иметь общедоступные интерфейсы, чтобы иметь возможность общаться. Я не уверен, как это делается в Google Cloud, но я уверен, что вы можете предоставить публичные интерфейсы своим экземплярам в обеих учетных записях. Затем вы рассматриваете эти два кластера как два разных центра данных в понятии Кассандры, и как только все машины смогут получить доступ к портам Cassandra друг на друга, измените cassandra.yaml на каждом кластере и добавьте к нему другие узлы кластера. Если вы используете файл свойств snitch для управления репликацией, вам необходимо обновить его так, чтобы он распознавал все узлы и их местоположение.
Наконец, выполните скользящий перезапуск и измените коэффициенты репликации ключей, чтобы реплицировать то, что вы хотите.
Обновления: Добавление разъяснений для точки Даниэля Комптона, что, когда включен публичный интерфейс, вам необходимо правильно настроить шифрование для репликации между общедоступными интерфейсами, а также ограничить доступ к этим публичным интерфейсам только к IP-адресам всей вашей кассандры узлы.
Возможно переименование кластера, и я осуществил этот процесс, который раньше работал.
Чтобы переименовать кластер, измените имя кластера в cassandra.yaml. Затем измените таблицу system.local на каждом узле, чтобы отразить это изменение и выполнить скользящий перезапуск. Детали переименования кластера можно найти здесь:
cassandra - Saved cluster name Test Cluster != configured name
Имейте в виду, если вы предоставляете публичные интерфейсы узлам Кассандры, они будут доступны для общественности. Вы можете сделать http://thelastpickle.com/blog/2015/09/30/hardening-cassandra-step-by-step-part-1-server-to-server.html, но, вероятно, лучше разрешить два проекты для доступа к ресурсам друг друга. –
Этот ответ ВЫСОКО подозреваемый. «первым шагом было бы переименование ваших кластеров с тем же именем» - как вы предлагаете пользователю это делать? Я сильно сомневаюсь, что совет действительно возможен. –
Спасибо вам обоим. Я обновил ответ, чтобы отразить ваши комментарии. – Arya