Проблемы конфигурации кластера в cassandra.yaml для многоузлового кластера, где известен только 1 публичный ip
Я хотел бы знать о параметрах конфигурации cassandra.yaml, а именно,
- listen_address
- broadcast_address
- rpc_address
- broadcast_rpc_address
на отдельных узлах в конкретном сценарии.
Сценарий: кластер из 6 узлов с соответствующими частными IP, но только один узел имеет открытый IP.
Требование: удаленное приложение Python для доступа к кластеру
Что я пробовал на каждом узле:
- listen_address: соответствующий
private IP
- broadcast_address:
blank
- rpc_address:
blank
кроме как на узле с публичным IP как0.0.0.0
- broadcast_rpc_address:
blank
кроме как на узле с публичным ip в качестве егоpublic ip
Я пытался выдать из моего кластера приложений (['public ip
'], порт =9042), но я получил предупреждение, которое в конечном итоге привело к закрытию моего приложения:
ВНИМАНИЕ:cassandra.cluster: не удалось создать пул соединений для нового хоста 192.xxx.xx.3:
1 ответ
Я рекомендую добавить два интерфейса для каждой машины.
Один из них является listen_address
и один для rpc_address
, при таком подходе вы не используете как broadcast_rpc_address
,
но, если вы используете публичный ip, вы должны указать общий адрес для всех узлов. Только один из них не может иметь публичный адрес.