【问题标题】:Spring Data Cassandra connectivity issue with AWS KeyspaceAWS Keyspace 的 Spring Data Cassandra 连接问题
【发布时间】:2021-09-15 22:05:03
【问题描述】:

我有一个简单的基于 crud 的应用程序,其中 Apache Cassandra 用作默认数据库。我使用 Spring Data Cassandra 进行 Cassandra 连接。

现在,我正在尝试进入 AWS Keyspace,Cassandra Java 驱动程序很好地支持它。我已经关注this doc 进行配置。

但是,每当我启动应用程序时,我总是会收到以下异常。

Caused by: com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: cassandra.us-east-2.amazonaws.com/<ip>:9142 (com.datastax.driver.core.exceptions.OperationTimedOutException: [cassandra.us-east-2.amazonaws.com/<ip>:9142] Operation timed out))

我在 application.properties 中使用了以下属性:

spring.data.cassandra.contact-points=cassandra.us-east-2.amazonaws.com
spring.data.cassandra.port=9142
spring.data.cassandra.cluster-name=<name>
spring.data.cassandra.username=<username>
spring.data.cassandra.password=<password>

我也尝试通过添加道具来使用 application.conf:

datastax-java-driver {
    basic.contact-points = [ "cassandra.us-east-2.amazonaws.com:9142"]
    advanced.auth-provider{
        class = PlainTextAuthProvider
        username = "<username>"
        password = "<password>"
    }
    basic.load-balancing-policy {
        local-datacenter = "us-east-2"
    }
    advanced.ssl-engine-factory {
        class = DefaultSslEngineFactory
        truststore-path = "/home/centos/keyspaces/cassandra_truststore.jks"
        truststore-password = "<password>"
      }
}

但还是一样的结果。请注意,trustStore 配置也作为 jvm 参数添加:

javax.net.ssl.trustStore=/home/centos/keyspaces/cassandra_truststore.jks
javax.net.ssl.trustStorePassword=<password>

奇怪的是,我可以从同一台机器远程登录到这个 Keyspace 主机端口,甚至可以使用以下命令直接连接到该实例:

conda activate python2
export SSL_CERTFILE="/home/centos/keyspaces/sf-class2-root.crt"
cqlsh cassandra.us-east-2.amazonaws.com 9142 -u <username> -p <password> --ssl

【问题讨论】:

    标签: amazon-web-services spring-boot cassandra spring-data-cassandra amazon-keyspaces


    【解决方案1】:

    很抱歉,您很难连接。你发布的错误让我觉得有些东西连接不正确。

    这是一个 github 页面,其中包含有关如何使用 Cassandra 的 Spring Data 连接到 Amazon Keypspaces 的代码示例:https://github.com/aws-samples/amazon-keyspaces-spring-app-example/blob/main/src/main/java/com/aws/mcs/springsample/KeyspacesSpringApplication.java

    【讨论】:

      【解决方案2】:

      实际上看起来查询/操作超时而不是连接。这通常与超出容量有关。我建议为您的表设置可观察性。以下存储库将使用 cloudformation 设置表和键空间 cloudwatch 指标。这将使您更加了解自己的能力。

      https://github.com/aws-samples/amazon-keyspaces-cloudwatch-cloudformation-templates

      【讨论】:

        猜你喜欢
        • 2018-11-14
        • 2021-08-31
        • 1970-01-01
        • 2018-05-14
        • 1970-01-01
        • 2019-10-15
        • 2016-07-17
        • 1970-01-01
        • 2012-07-28
        相关资源
        最近更新 更多