Как использовать другой сетевой интерфейс для межузловой связи Cassandra?

У меня развернуто четыре узла Cassandra. У меня есть приложение Java, которое действует как клиент для кластера Cassandra. Теперь я хочу посмотреть, смогу ли я использовать различные сетевые интерфейсы для межузловой связи и передачи данных.

Можете ли вы пролить свет на это?


person awesomemypro    schedule 08.08.2019    source источник


Ответы (1)


Да, ты можешь это сделать. Для связи между узлами вы можете указать IP-адреса/интерфейсы через listen_address (или listen_interface, но не вместе) (conf), а для связи клиент->Cassandra — rpc_address (или rpc_interface) (conf)...

При необходимости вам также может понадобиться установить broadcast_address и broadcast_rpc_address, но это зависит от топологии вашего кластера.

person Alex Ott    schedule 08.08.2019
comment
Каковы другие факторы? Только указание двух разных интерфейсов может выполнить эту работу? - person awesomemypro; 08.08.2019
comment
Это должно работать для простых кластеров, но для кластеров с несколькими контроллерами домена, например, на AWS, вам может потребоваться указать разные широковещательные адреса и т. д. См., например, это описание: docs.datastax.com/en/dse/6.0/dse-admin/datastax_enterprise/ - person Alex Ott; 08.08.2019
comment
Если они находятся в одном центре обработки данных, нужно ли мне по-прежнему предоставлять внешние IP-адреса для адреса прослушивания и адреса rpc? - person awesomemypro; 08.08.2019
comment
нет... обычно listen_address - это приватный адрес, а если требуется внешний доступ, то дополнительно используются широковещательные адреса. - person Alex Ott; 08.08.2019
comment
И когда я комментирую строку, в которой упоминается rpc_address, и указываю rpc_interface как eth0, сервер не запускается. - person awesomemypro; 08.08.2019
comment
вам нужно указать либо rpc_address, либо rpc_interface (позвольте мне обновить ответ) - person Alex Ott; 08.08.2019