有人能够使用Java客户端连接到AWS MCS吗?按照他们的文档,我向本地计算机上的JVM提供了-Djavax.net.ssl.trustStore和-Djavax.net.ssl.trustStorePassword,但是我得到以下错误:
“无法到达任何联系点”
我能够使用相同的详细信息通过cqlsh进行连接。适用于Java客户端的AWS文档似乎在细节上有些许改动。
我尝试的最后一件事看起来像这样:
InetSocketAddress address1 = new InetSocketAddress("cassandra.xx-xxxx-x.amazonaws.com", 9142);
return CqlSession.builder()
.withLocalDatacenter("xx-xxxx-x")
.addContactPoint(address1)
.withAuthCredentials("amc_connection-at-xyz", "xxxxxxxxxx")
.withKeyspace("xxxxxxxx")
.build();
怀疑我需要提供一个SslContext但不确定如何为此配置一个,实际抛出的异常是DriverTimeoutException
答案 0 :(得分:0)
您似乎可以通过将以下内容添加到构建器中来添加SSL上下文:
.withSslContext(SSLContext.getDefault())
例如:
CqlSession.builder()
.addContactPoints(contactPoints)
.withSslContext(SSLContext.getDefault())
.withLocalDatacenter("us-east-2")
.withAuthProvider(new SigV4AuthProvider("us-east-2"))
.build());
这里似乎有更详细的文档:
https://docs.aws.amazon.com/mcs/latest/devguide/ManagedCassandraService.pdf
特别是-第16页
希望这会有所帮助
答案 1 :(得分:0)
您需要调用withSSL()才能使用系统属性https://docs.datastax.com/en/developer/java-driver/3.1/manual/ssl/#driver-configuration。