Cassandra

All lectures for UZ purposes
Daraja, Dars
Mavjud

Cassandra – bu katta miqdordagi ma'lumotlarni turli xil odatiy serverlarda ishlash uchun yaratilgan ochiq manbali taqsimlangan ma'lumotlar bazasi boshqaruv tizimi. Bundan tashqari, Spring Boot Cassandra uchun avtosozlash va Spring Data Cassandra orqali taqdim etiladigan abstraksiyalarni nazarda tutadi. Osonroq bog'liqliklarni yig'ish uchun "starter" mavjud: spring-boot-starter-data-cassandra.

Cassandra-ga Ulanish

Cassandra-dan CassandraTemplate yoki CqlSession ni boshqa Spring beanlari kabi avtosozlangan holda qo'shish mumkin. Ulanishni sozlash uchun spring.data.cassandra.* xususiyatlaridan foydalanish mumkin. Odatda, keyspace-name va contact-points hamda mahalliy ma'lumotlar markazi nomi ko'rsatiladi, quyidagi misolda ko'rsatilganidek:

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"

Agar port barcha kontakt nuqtalari uchun bir xil bo'lsa, qisqartirish usulidan foydalanish va faqat host nomlarini ko'rsatish mumkin, quyidagi misolda ko'rsatilgandek:

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"
Bu ikki misol bir xil, chunki standart port – 9042. Agar portni sozlash kerak bo'lsa, spring.data.cassandra.port dan foydalaning.

Cassandra uchun haydovchi o'zining konfiguratsion infratuzilmasi bor, u application.conf ni classpath ning ildiziga yuklaydi.

Spring Boot bu faylni sukut bo'yicha izlamaydi, lekin uni spring.data.cassandra.config yordamida yuklashi mumkin. Agar xususiyat spring.data.cassandra.* va konfiguratsiya faylida bir vaqtda mavjud bo'lsa, unda spring.data.cassandra.* dagi qiymat yuqori darajada afzalliklarga ega.

Haydovchilarni chuqurlashtirilgan sozlash uchun DriverConfigLoaderBuilderCustomizer ni amalga oshiruvchi ixtiyoriy miqdorda beanlarni ro'yxatdan o'tkazish mumkin. CqlSession ni CqlSessionBuilderCustomizer turidagi bean orqali sozlash mumkin.

Agar siz CqlSessionBuilder dan foydalansangiz va bir nechta CqlSession beanlarini yaratsangiz, bu qurilish vositasi o'zgaruvchan bo'lgani uchun har bir sessiya uchun yangi nusxa qo'shilganligiga ishonch hosil qiling.

Quyidagi kod ro'yxatida Cassandra beanini qo'shish ko'rsatilgan:

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) } } 

Agar siz CassandraTemplate turidagi o'z beaningizni @Bean annotatsiyasi bilan qo'shsangiz, u sukut bo'yicha foydalanilayotgan andozani almashtiradi.

Spring Data Cassandra Repozitoriyalari

Spring Data Cassandra uchun repozitoriyalarni qo'llab-quvvatlash vositalarini o'z ichiga oladi. Hozirda ular JPA uchun avval ko'rib chiqilgan repozitoriyalarni qo'llab-quvvatlashdan ko'ra cheklanganroq, va qidiruv metodlarini @Query annotatsiyasi yordamida belgilash talab qilinadi.

Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION