Для развертывания кластера Cassandra с несколькими центрами обработки данных Нужен ли мне общедоступный IP-адрес для всех узлов? Предположим, у меня такая архитектура:
Datacenter US
Node1:
eth0 =162.63.93.45 (public ip)
eth1= 192.168.56.101(private ip)
Node2:
eth0= 192.168.56.102(private ip)
Node3:
eth0= 192.168.56.103(private ip)
Node4:
eth0= 192.168.56.104(private ip)
Datacenter EU
Node1:
eth0 =180.98.100.87 (public ip)
eth1= 192.168.56.101(private ip)
Node2:
eth0= 192.168.56.102(private ip)
Node3:
eth0= 192.168.56.103(private ip)
Node4:
eth0= 192.168.56.104(private ip)
Теперь мой вопрос: можно ли настроить кластер cassandra на такой архитектуре? или мне нужен публичный IP-интерфейс для каждого узла ??
Когда вы настраиваете кластер Cassandra с несколькими центрами обработки данных, одним из требований является то, что все узлы из всех центров обработки данных могут обмениваться данными между собой. У меня нет всей необходимой информации, но из того, что я видел, вы используете одну и ту же частную подсеть в двух центрах обработки данных, поэтому это будет проблематично, поскольку они конфликтуют.
Публичный адрес не нужен, когда речь идет о взаимодействии компьютера между центрами обработки данных, это дорого (по крайней мере, для IPv4) и может быть опасно, поскольку адрес ваших компьютеров напрямую доступен из Интернета (ну, IPv6 сделает весь ваш компьютер напрямую доступным :).
Итак, теперь у вас есть несколько возможностей:
Вам также необходимо настроить listen_address
параметр cassandra соответственно