Я пишу Библиотека оберточного клиента Cassandra в c ++. Каждый из моих потоков приложений устанавливает соединения с несколькими узлами Cassandra в одном центре обработки данных в настройка нескольких центров обработки данных.
Я планирую иметь специальный поток для обработки на лету Сбои соединения TCP между приложением и узлами Cassandra, которые повторяют соединение и переключаются на другой центр обработки данных, когда несколько узлов в одном центре обработки данных недоступны. Эта ветка будет уведомлена о сбоях соединения потоками приложения.
Мой вопрос: как этот процесс / поток должен работать? Существует ли какой-либо экономный вызов или CQL-запрос, который может сообщить текущим узлам вверх / вниз в центре обработки данных (как это делает nodetool), или мне нужно повторить попытку установления соединения и выполнить фиктивные запросы к каждому узлу вниз для проверки?
Задача ещё не решена.
Других решений пока нет …