Мой экземпляр Cassandra работает на AWS EC2. Я создал загрузочное приложение Spring в моей локальной системе, где я пытаюсь подключиться к этой базе данных и запросить данные. Каждый раз, когда я получаю сообщение об ошибке:
com.datastax.driver.core.exceptions.NoHostAvailableException: все хосты пытались выполнить запрос (пытался: /aaa.zz.yy.xx:9042
В моем приложении для весенней загрузки есть следующие зависимости:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-cassandra</artifactId>
</dependency>
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
</dependency>
Я создаю свое соединение следующим образом:
@Bean
public Session session() {
Cluster cluster = Cluster.builder().withPort(9042).addContactPoint("aaa.zz.yy.xx").withoutJMXReporting().build();
cluster.getConfiguration().getSocketOptions().setReadTimeoutMillis(60000);
return cluster.connect(keyspace_name);
}
На моем cassandra.yaml file:
rpc_address: aaa.zz.yy.xx
rpc_port: 9160
Я даже добавил входящее правило в свой EC2, где я указал свой локальный системный IP-адрес (где работает загрузочное приложение Spring).
Что я делаю не так?
РЕДАКТИРОВАТЬ: TLDR: Что я делал неправильно, так это то, что я использовал частный IP в своем коде. Когда я переключился на publi c IP, он работал.