Подключение к Cassandra при запуске и мониторинг состояния сеанса
Два связанных вопроса
1) В настоящее время сеанс на C* устанавливается лениво - иначе говоря, только при первом доступе к любой таблице.
Вместо этого мы хотели бы установить сеанс сразу после запуска приложения (в случае проблем с подключением и т. Д.). Каков был бы лучший способ сделать это? Должен ли я просто получить объект сеанса в моем коде запуска?
connector.provider.session
2) Как мне тогда следить за состоянием соединения? Я мог позвонить
connector.provider.session.isClosed()
но я не уверен, что это сделает работу.
1 ответ
Я бы не стал полагаться на этот механизм, так как вы, возможно, захотите получить больше метрик из кластера, для чего у вас есть встроенная поддержка JMX, поэтому через протокол JMX вы можете взглянуть на метрики более подробно.
Теперь, очевидно, у вас есть OpsCenter, который изначально использует эту функцию, но в качестве альтернативы вы можете использовать комбинацию слушателя JMX с чем-то вроде Graphana(просто идея) или любым другим, что поддерживает нативную совместимость.
С точки зрения методов низкого уровня, да, вы на деньги:
connector.provider.session.isClosed()
Но у вас также есть сердцебиение, которое вы можете регистрировать, просматривать и так далее. Здесь есть больше деталей.