2015-10-28 1 views
2

Я пытаюсь настроить Cassandra на Google Compute Engine таким образом, чтобы узлы кластера связывались напрямую друг с другом с использованием локальной сети (со своими внутренними IP-адресами) и что клиент за пределами кластера может говорить для каждого узла.Может ли Cassandra быть настроен на использование как внутренних, так и общедоступных IP-адресов?

До сих пор мне удалось создать кластер с помощью DataStax OpsCenter, используя внутренний IP-адрес, в соответствии с этими инструкциями: https://academy.datastax.com/demos/datastax-enterprise-deployment-guide-google-compute-engine Когда я затем подключить используя драйвер DataStax C# со строкой соединения, которая содержит все общественные IP -addresses, и я получаю список узлов, я возвращаю список с одним общедоступным IP-адресом и остальными внутренними IP-адресами. Это означает, что драйвер сможет подключаться только к одному узлу.

Я предполагаю, что это невозможно, и что драйвер должен быть правильно обработан. Но исправление проблемы с (простым) изменением конфигурации Cassandra было бы предпочтительным в данный момент.

Я использую OpsCenter 5.2.1, Cassandra version 2.1.9.791.

ответ

2

На уровне Кассандры вы можете установить broadcast_address.

На уровне водителя вы можете создать address translator policy, но вам нужно будет поддерживать словарь частных и частных ip-адресов.

+0

Должен ли я установить его на внутренний IP-адрес или на общедоступный IP-адрес? В настоящее время он не установлен, поэтому он установлен в адрес listen_address, который является внутренним адресом. Если я установил его на общедоступный IP-адрес, будут ли узлы связываться друг с другом по частной сети? –

+0

BTW, спасибо за ссылку на политику переводчика адресов! Это поможет мне, пока я не выясню, как правильно настроить Кассандру. –

Смежные вопросы