Вот минимальный рабочий пример на github: https://github.com/kalnar/tacocloudapp/ ... ra_example. wacocloudapp/tree/cassandra_example. : < /p>
Код: Выделить всё
spring:
application:
name: TacoCloudApp
thymeleaf:
cache: false
data:
cassandra:
keyspace-name: tacocloud
contact-points: localhost
port: 9042 # This is the default port, but good to include for clarity
local-datacenter: datacenter1
schema-action: create-if-not-exists
logging:
level:
com.datastax.oss.driver: DEBUG
org.springframework.data.cassandra: DEBUG
< /code>
Я использую Docker для запуска кластера Cassandra. < /p>
Я создал изображение Docker, используя: < /p>
docker network create cassandra-net
docker run --name my-cassandra \
--network cassandra-net \
-p 9042:9042 \
-d cassandra:latest
< /code>
Я зарегистрировал в базе данных и создал пространство имен с помощью: < /p>
docker run -it --network cassandra-net --rm cassandra cqlsh my-cassandra
< /code>
create keyspace tacocloud
... with replication={'class':'SimpleStrategy', 'replication_factor':1}
... and durable_writes=true;
< /code>
The error that I have when trying to use the repository on localhost:8080/design< /code>: < /p>
Java.lang.illegalstateException: Поскольку вы предоставили явные контактные точки, локальный DC должен быть явно установил (см. Basic.load-balance-policy.local-DataCenter в конфигурации или программировании с SessionBuilder.WithLocAldAcEnter). Текущие точки контакта: Узел (Endpoint =/127.0.0.1: 9042, hostid = dd5ae1ee-c050-4062-8968-52fc4ccd6cc5, hashcode = 9891df0) = datasenter1. Текущие DCS в этом кластере: dataCenter1
Что я нашел об этой проблеме:
https://github.com/spring-projects/spring-boot/issues/1979#issuecomment-83436166611. Это работало на них, не говоря, как они решили проблему. Также они использовали Spring 2.3.
https://medium.com/geekculture/internal-working-of-cassandra-river-in-springboot-application-d45ce58b748b
Я попытался использовать свойство localdc />https://stackoverflow.com/a/79206092/2847905
Я также попытался передавать аргументы CLI при запуске приложения с помощью INTELLIJ Идея с использованием:
-Ddatastax-java-driver.basic.load-balancing-policy.local-datacenter=datacenter1
< /code>
I have also verified the cluster, the local datacenter is named datacenter1.
Подробнее здесь: https://stackoverflow.com/questions/797 ... -cassandra