Путь чтения Cassandra
Запрос чтения, инициированный клиентом, отправляется на узел координатора, который проверяет разделитель, какие реплики отвечают за данные, и если уровень согласованности равенвстретились.
Координатор проверит, отвечает ли он за данные.Если да, удовлетворить запрос.Если нет, он отправит запрос в самую быструю реплику ответа (это определяется с помощью динамической метки ).Кроме того, дайджест запроса отправляется в другие реплики.
Узел будет сравнивать возвращаемые дайджесты данных, и если все они одинаковы и уровень согласованности достигнут, данные возвращаются из самой быстрой реплики-респондента.,Если дайджесты не совпадают, координатор выполнит некоторые операции восстановления чтения.
На узле выполняется несколько шагов: проверка кэша строк, проверка мембайлов, проверка sstables.Дополнительная информация: Как считываются данные? и ReadPathForUsers .
Запросы балансировки нагрузки
Поскольку у вас есть коэффициент репликацииэто равно количеству узлов, это означает, что каждый узел будет содержать все ваши данные.Таким образом, когда узел-координатор получит запрос на чтение, он получит его от себя.В частности (если вы используете уровень согласованности LOCAL_ONE, запрос будет довольно быстрым).
Драйверы клиента реализуют политики балансировки нагрузки , что означает, что на вашем клиенте вы можете настроитькак запросы будут распространяться по кластеру.Еще немного чтения - ClientRequestsRead