Cassandra es un sistema de gestión de bases de datos distribuidas de código abierto diseñado para procesar grandes volúmenes de datos en múltiples servidores típicos. Además, Spring Boot proporciona configuración automática para Cassandra y abstracciones proporcionadas a través de Spring Data Cassandra. Para una recopilación conveniente de dependencias, existe un spring-boot-starter-data-cassandra
de “inicio”.
Conectando con Casandra
Puedes implementar una instancia CassandraTemplate
o CqlSession
configurada automáticamente desde Cassandra como cualquier otro Spring Bean. Las propiedades spring.data.cassandra.*
se pueden utilizar para configurar la conexión. Normalmente, se especifican keyspace-name
y contact-points
, así como el nombre del centro de datos local, como se muestra en el siguiente ejemplo:
spring.data.cassandra.keyspace-name=mykeyspace
spring.data.cassandra.contact-points=cassandrahost1:9042,cassandrahost2:9042
spring.data.cassandra.local-datacenter=centro de datos1
spring:
data:
cassandra:
keyspace-name: "mykeyspace"
contact-points: "cassandrahost1:9042,cassandrahost2:9042"
local-datacenter: "datacenter1"
Si el puerto es el mismo para todos los puntos de contacto, puede utilizar un acceso directo y especificar solo los nombres de host, como se muestra en el siguiente ejemplo:
spring.data.cassandra.keyspace-name=mykeyspace
spring.data.cassandra.contact-points=cassandrahost1,cassandrahost2
spring.data.cassandra.local-datacenter=centro de datos1
spring:
data:
cassandra:
keyspace-name: "mykeyspace"
contact-points: "cassandrahost1,cassandrahost2"
local-datacenter: "datacenter1"
9042
. Si necesita configurar el puerto, utilice
spring.data.cassandra.port
.
El controlador Cassandra tiene su propio marco de configuración que carga application.conf
en la ruta de clase raíz.
Spring Boot no busca dicho archivo de forma predeterminada, pero puede cargarlo usando spring.data.cassandra.config
. Si una propiedad está presente tanto en spring.data.cassandra.*
como en el archivo de configuración, el valor en spring.data.cassandra.*
tiene un nivel de precedencia más alto.
Para una personalización más profunda del controlador, puede registrar una cantidad arbitraria de beans que implementen DriverConfigLoaderBuilderCustomizer
. CqlSession
se puede personalizar utilizando un bean como CqlSessionBuilderCustomizer
.
CqlSessionBuilder
para crear varios beans
CqlSession
, tenga en cuenta que el constructor es mutable. Por lo tanto, , debe asegurarse de implementar una nueva copia para cada sesión.
La siguiente lista de código muestra cómo implementar un bean Cassandra:
@Component public class MyBean { private final CassandraTemplate template; public MyBean(CassandraTemplate template) { this.template = template; } }
@Component class MyBean(private val template: CassandraTemplate) { }
Si agrega su propio bean CassandraTemplate
marcado con la anotación @Bean
, reemplazará la plantilla predeterminada.
Repositorios de datos de primavera Cassandra
Spring Data contiene soporte de repositorio para Cassandra. Actualmente son más limitados que el soporte de repositorio similar para JPA discutido anteriormente y requieren que los métodos de búsqueda estén anotados con la anotación @Query
.
GO TO FULL VERSION