Cassandra — це розподілена система керування базами даних з відкритим вихідним кодом, призначена для обробки великих обсягів даних на безлічі типових серверів. На додаток Spring Boot передбачає автоконфігурацію для Cassandra та абстракції, що надаються через ресурс. Для зручного збирання залежностей існує "стартер" spring-boot-starter-data-cassandra.
Підключення до Cassandra
Можна впровадити автоконфігурований CassandraTemplate або екземпляр CqlSession з Cassandra так само, як і будь-який інший бін Spring. Властивості spring.data.cassandra.* можна використовувати для налаштування з'єднання. Зазвичай вказується keyspace-name та contact-points, а також ім'я локального центру даних, як показано в наступному прикладі:
spring.data.cassandra.keyspace-name=mykeyspace
spring.data.cassandra.contact-points=cassandrahost1:9042,cassandrahost2:9042
spring.data.cassandra.local-datacenter=datacenter1
spring:
data:
cassandra:
keyspace-name: "mykeyspace"
contact-points: "cassandrahost1:9042,cassandrahost2:9042"
local-datacenter: "datacenter1"
Якщо порт однаковий для всіх контактних точок, можна скористатися скороченням та вказати лише імена хостів, як показано в наступному прикладі:
spring.data.cassandra.keyspace-name=mykeyspace
spring.data.cassandra.contact-points=cassandrahost1,cassandrahost2
spring.data.cassandra.local-datacenter=datacenter1
spring:
data:
cassandra:
keyspace-name: "mykeyspace"
contact-points: "cassandrahost1,cassandrahost2"
local-datacenter: "datacenter1"
9042. Якщо потрібно налаштувати порт, використовуй
spring.data.cassandra.port.
Драйвер для Cassandra має власну конфігураційну інфраструктуру, яка завантажує application.conf у корінь classpath.
Spring Boot не здійснює пошук такого файлу за замовчуванням, але може завантажувати його за допомогою spring.data.cassandra.config. Якщо властивість одночасно присутня в spring.data.cassandra.* і в конфігураційному файлі, значення spring.data.cassandra.* має найвищий рівень старшинства.
Для більш глибокого налаштування драйверів можна реєструвати довільну кількість бінів, що реалізують DriverConfigLoaderBuilderCustomizer. CqlSession можна налаштувати за допомогою біну типу CqlSessionBuilderCustomizer.
CqlSessionBuilder для створення кількох бінів
CqlSession, май на увазі, що засіб збирання змінюється, тому слід переконатись, що для кожної сесії впроваджується нова копія.
У наступному лістингу коду показано, як впровадити бін Cassandra:
@Component public class MyBean { private final CassandraTemplate template; public MyBean(CassandraTemplate template) { this.template = template; } }
@Component class MyBean(private val template: CassandraTemplate) { }
Якщо ти додаси власний бін типу CassandraTemplate, позначений анотацією @Bean, він замінить шаблон за замовчуванням.
Репозиторії Spring Data Cassandra
Spring Data містить засоби підтримки репозиторіїв для Cassandra. Наразі вони більш обмежені, ніж аналогічна підтримка репозиторіїв для JPA, розглянута раніше, і вимагає анотування методів пошуку за допомогою анотації @Query.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ