Cassandra

All lectures for TG purposes
Сатҳи , Дарс
дастрас

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-ро нишон медиҳанд, инчунин номи маркази додавии локалиро, тавре ки дар намунаи зерин нишон дода шудааст:

Properties
spring.data.cassandra.keyspace-name=mykeyspace
spring.data.cassandra.contact-points=cassandrahost1:9042,cassandrahost2:9042
spring.data.cassandra.local-datacenter=datacenter1
Yaml
spring:
  data:
    cassandra:
      keyspace-name: "mykeyspace"
      contact-points: "cassandrahost1:9042,cassandrahost2:9042"
      local-datacenter: "datacenter1"

Агар порт барои ҳамаи нуқтаҳои тамосӣ якхела бошад, метавонед кӯтоҳ карда танҳо номҳои хостҳоро нишон диҳед, тавре ки дар намунаи зерин нишон дода шудааст:

Properties
spring.data.cassandra.keyspace-name=mykeyspace
spring.data.cassandra.contact-points=cassandrahost1,cassandrahost2
spring.data.cassandra.local-datacenter=datacenter1
Yaml
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 ворид карда шавад:

Java
import org.springframework.data.cassandra.core.CassandraTemplate; import org.springframework.stereotype.Component; @Component public class MyBean { private final CassandraTemplate template; public MyBean(CassandraTemplate template) { this.template = template; }  // ...  public long someMethod() { return this.template.count(User.class); } } 
Kotlin
import org.springframework.data.cassandra.core.CassandraTemplate import org.springframework.stereotype.Component @Component class MyBean(private val template: CassandraTemplate) {  // ...  fun someMethod(): Long { return template.count(User::class.java) } } 

Агар шумо bean-и худро навъи CassandraTemplate бо аннотатсия @Bean илова кунед, он шаблонро нирӯзм замен мекунад.

Репозиторияҳои Spring Data Cassandra

Spring Data василаҳои дастгирии репозиторияҳо барои Cassandra дорад. Дар айни замон онҳо маҳдудтар ҳастанд нисбат ба дастгирии репозиторияҳои шабеҳ барои JPA, ки пештар дида шуда буд, ва талаб мекунанд, ки методҳои ҷустуҷӯ бо ёрии аннотатсия @Query аннотатсия шаванд.

Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION