Как подключиться к двум разным кластерам? - PullRequest
0 голосов
/ 20 марта 2020

Возможно ли использовать spring-boot 2.1.x (с spring-data-cassandra 2. *) для подключения к двум разным кластерам?

Если это возможно, как связать репозиторий (или Шаблон или CRUDRepository) в один из кластеров?

Могу ли я использовать один и тот же шаблон (и, возможно, создать из него два компонента) для обоих кластеров? Скажем, я хотел бы хранить данные в «горячем» кластере с коротким TTL, а также в «холодном» кластере с более длинным TTL (выдуманный пример, поэтому не критикуйте фактический вариант использования;))

1 Ответ

0 голосов
/ 20 марта 2020

Взгляните на AbstractRoutingSessionFactory. Вы можете использовать этот базовый класс для создания собственного Session маршрутизатора на основе, например, ThreadLocal хранилища. Сложный бит заключается в том, чтобы знать, когда переключаться между сеансами.

Вы также можете обобщить эту концепцию, внедрив свой собственный SessionFactory, который управляется автоматическим выключателем или настройкой, в которой маршрутизируются вызовы Session. Все это происходит прозрачно. Просто убедитесь, что вы сконфигурировали свой собственный компонент CassandraTemplate, чтобы выбрать SessionFactory, поскольку Spring Boot по умолчанию использует один Session.

Репозитории работают поверх компонента CassandraTemplate.

...