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