Как показать через какой узел Кассандры был обработан ваш запрос - PullRequest
0 голосов
/ 23 апреля 2019

Почему?

Для образовательных целей. Я думаю, что для моей аудитории было бы очень приятно "увидеть", как это работает.

Настройка

  • API-интерфейс Spring boot REST (для обработки информации о клиенте)
  • Докеризованный кластер Cassandra, состоящий из трех соединенных узлов, содержащий данные о клиентах с коэффициентом репликации два.

Предложения

  • Показывает, какой IP-адрес или имя контейнера служил моему запросу
  • Показывает, какой IP-адрес или имя контейнера содержат данные, которые использовались для отображения моего запроса.
  • Если бы я запускал эти узлы на трех отдельных физических машинах, может быть, какая машина содержала мои данные?
  • Что-то еще, что вы имеете в виду, действительно показывает распределенные возможности Cassandra

Может ли это быть достигнуто в журналах докера или чем-то в Spring Cassandra, о котором я не знаю?

1 Ответ

2 голосов
/ 23 апреля 2019

Я не знаю о Spring Data, но в обычном драйвере Java вы можете получить информацию о выполнении из ResultSet через getExecutionInfo и вызвать функцию getQueriedHost из нее. Если вы используете политику балансировки нагрузки DCAware / TokenAware по умолчанию, то вы достигнете хотя бы одного из узлов, содержащих ваши данные. Остальную информацию вы можете получить через класс Metadata, из которого вы можете получить список диапазонов токенов, принадлежащих хостам, сгенерировать токен для вашего ключа раздела и поиск в диапазонах токенов.

P.S. Подробнее см. Документация по драйверу Java .

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