使用Java客户端连接到AWS托管的Cassandra

时间:2020-03-25 11:37:48

标签: java amazon-web-services cassandra

有人能够使用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

2 个答案:

答案 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)