LatencyAwarePolicy datastax cassandra версии 4.6 и подключение без локального центра обработки данных

#java #cassandra #datastax

#java #кассандра #налог на данные

Вопрос:

Я переношу свой проект на spring boot 2.3.5, который имеет драйвер 4.6, а LatencyAwarePolicy, похоже, исчез из существования. Интересно, есть ли у нас аналогичный конструктор политик для драйвера 4.6 или каков наилучший подход для 4.6.

https://docs.datastax.com/en/drivers/java/3.6/com/datastax/driver/core/policies/LatencyAwarePolicy .Builder.html

Я искал, но ничего не смог найти в документах. может быть https://github.com/datastax/java-driver/blob/4.x/core/src/main/java/com/datastax/oss/driver/internal/core/loadbalancing/BasicLoadBalancingPolicy.java с помощью BasicLoadBalancingPolicy я могу подключиться без имени центра обработки данных, но я в замешательстве, так ли это хорошо, как LatencyAwarePolicy?

Ответ №1:

Политика балансировки нагрузки по умолчанию в 4.x теперь включает в себя лучшие практики, включая распознавание токенов и предотвращение загруженности узлов (что было целью LatencyAware).

В этом сообщении в блоге обсуждается больше: https://www.datastax.com/blog/improved-client-request-routing-apache-cassandratm

Вы все равно можете реализовать любой LBP, который вам нужен, путем реализации интерфейса LoadBalancingPolicy, но обычно в этом нет необходимости.

Комментарии:

1. по умолчанию я не мог подключиться без имени локального центра обработки данных, но в моем старом коде у меня была LatencyAwarePolicy, и я не давал никакого datacentername. для 4.x как я должен подключиться?

2. Если предусмотрены явные контактные точки (т.Е. Не Только localhost по умолчанию), когда центр обработки данных также должен быть предоставлен либо в конфигурации, либо программно с помощью конструктора. Это объясняется немного ниже в разделе руководства, на который я ссылался.