1
我試圖在amazon實例上安裝並運行Apache Cassandra。在實例一切工作正常。另外我可以通過cassandra-cli --host PUBLIC_IP --port 9160連接遠程機器。Cassandra + Java Spring連接問題
但是當我嘗試通過spring-data-cassandra(1.2.0.Build snapshot)連接cassandra時拋出錯誤:
All host(s) tried for query failed (tried: /PUBLIC_IP:9160 (com.datastax.driver.core.ConnectionException: [/PUBLIC_IP:9160] Unexpected error during transport initialization (com.datastax.driver.core.TransportException: [/PUBLIC_IP:9160] Channel has been closed)))
我cassandra.yuml:
listen_address: localhost
start_native_transport: true
native_transport_port: 9042
start_rpc: true
rpc_address: 0.0.0.0
rpc_port: 9160
broadcast_rpc_address: PRIVATE_AWS_INSTANCE_IP
卡桑德拉-CLI --host PUBLIC_IP --port 9160做工精細。
羣集豆:
@Bean
public CassandraClusterFactoryBean cluster() throws Exception {
CassandraClusterFactoryBean cluster = new CassandraClusterFactoryBean();
cluster.setContactPoints(env.getProperty("cassandra.contactpoints"));
cluster.setPort(Integer.parseInt(env.getProperty("cassandra.port")));
return cluster;
}
道具:
cassandra.contactpoints=PUBLIC_IP
cassandra.port=9160
cassandra.keyspace=mykeyspace
依賴關係:
<properties>
<spring.version>4.1.0.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-cql</artifactId>
<version>1.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-cassandra</artifactId>
<version>1.2.0.BUILD-SNAPSHOT</version>
</dependency>
UPD
問題是RESOLV通過將端口更改爲9042(native)