Как драйвер Cassandra обновляет contactPoints, если все поды перезапускаются в Kubernetes без перезапуска клиентского приложения? - PullRequest
0 голосов
/ 06 августа 2020

Мы создали сервис с отслеживанием состояния и без головы. Существует два способа определения IP-адресов одноранговых узлов в приложении:

  1. Использование 'cassandra-headless-service-name' в contactPoints
  2. Получить IP-адреса одноранговых узлов из headless-service & экстернализируйте IP-адреса одноранговых узлов и считывайте эти IP-адреса при инициализации соединения. Все идет нормально. Вышеупомянутое будет работать, если один / несколько модулей будут перезапущены, а не все. В этом случае драйвер автоматически обновит новые IP-адреса.

Но как это будет работать в случае полного отключения? Если все модули не работают и когда они возвращаются, если IP всех модулей изменен (IP может измениться в Kubernetes), как приложение будет подключаться к Cassandra?

1 Ответ

1 голос
/ 06 августа 2020

При полном отключении, вы правы, у приложения не будет допустимых конечных точек для кластера. Их необходимо обновить (и перезапустить приложение), прежде чем приложение подключится к Cassandra.

Мы фактически написали RESTful API, который позволяет использовать текущие допустимые конечные точки для запросов по кластерам. Таким образом, команды разработчиков приложений могут найти текущие IP-адреса для своего кластера в любое время. Я рекомендую сделать что-нибудь подобное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...