Cassandra - ин системаи тақсимоти идоракунии базаи додаҳо бо коди кушода аст, ки барои коркард кардани миқдори калонтарини додаҳо дар якчанд серверҳои типӣ таъин шудааст. Ба илова, Spring Boot пайвасткунии автоматӣ барои Cassandra пешбинӣ мекунад ва абстраксияҳоеро, ки тавассути Spring Data Cassandra пешниҳод мешаванд. Барои ҷамъоварии осони вобастагиҳо "стартер" spring-boot-starter-data-cassandra
мавҷуд аст.
Пайвастшавӣ ба Cassandra
Метавонед CassandraTemplate
ё нусхаи CqlSession
-ро аз Cassandra ҳамчун ҳар гуна bean-и дигари 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.*
дорои сатҳи баландтарини афзалият аст.
Барои танзимоти бештари амиқи драйверҳо, метавонед якчанд beans-ҳои иҷроиши DriverConfigLoaderBuilderCustomizer
сабти ном кунед. CqlSession
метавонад бо ёрии як bean-и навъи CqlSessionBuilderCustomizer
танзим карда шавад.
CqlSessionBuilder
-ро барои сохтани чандин beans-и
CqlSession
истифода баред, ба назар гиред, ки воситаи сохт зуд-талафшаванда аст, бинобар ин, боварӣ ҳосил кунед, ки барои ҳар як сессия нусхаи нав ворид карда мешавад.
Дар листинги коди зерин нишон дода шудааст, ки чӣ тавр bean-и Cassandra ворид карда шавад:
@Component public class MyBean { private final CassandraTemplate template; public MyBean(CassandraTemplate template) { this.template = template; } }
@Component class MyBean(private val template: CassandraTemplate) { }
Агар шумо bean-и худро навъи CassandraTemplate
бо аннотатсия @Bean
илова кунед, он шаблонро нирӯзм замен мекунад.
Репозиторияҳои Spring Data Cassandra
Spring Data василаҳои дастгирии репозиторияҳо барои Cassandra дорад. Дар айни замон онҳо маҳдудтар ҳастанд нисбат ба дастгирии репозиторияҳои шабеҳ барои JPA, ки пештар дида шуда буд, ва талаб мекунанд, ки методҳои ҷустуҷӯ бо ёрии аннотатсия @Query
аннотатсия шаванд.
GO TO FULL VERSION