【问题标题】:Micronaut fail to connect to KeyspacesMicronaut 无法连接到 Keyspace
【发布时间】:2021-08-24 16:55:08
【问题描述】:

我正在尝试使用以下配置将我的服务与 AWS Cassandra (Keyspaces) 集成:

    cassandra:
      default:
        advanced:
          ssl: true
          ssl-engine-factory: DefaultSslEngineFactory
          metadata:
            schema:
              enabled: false
          auth-provider:
            class: PlainTextAuthProvider
            username: "XXXXXX"
            password: "XXXXXX"
        basic:
          contact-points:
            - ${CASSANDRA_HOST:"127.0.0.1"}:${CASSANDRA_PORT:"9042"}
          load-balancing-policy:
            local-datacenter: "${CASSANDRA_DATA_CENTER}:datacenter1"
          session-keyspace: "keyspace"

每当我运行该服务时,它都无法加载并出现以下错误:

Message: Could not reach any contact point, make sure you've provided valid addresses (showing first 1 nodes, use getAllErrors() for more): Node(endPoint=cassandra.eu-west-1.amazonaws.com/3.248.244.41:9142, hostId=null, hashCode=7296b27b): [com.datastax.oss.driver.api.core.DriverTimeoutException: [s0|control|id: 0x1f1c50a1, L:/172.17.0.3:54802 - R:cassandra.eu-west-1.amazonaws.com/3.248.244.41:9142] Protocol initialization request, step 1 (OPTIONS): timed out after 5000 ms]

关于cassandra-micronaut 库的文档很少,所以我不确定我在这里做错了什么。

更新:

为了清楚起见:我们的环境变量的值如下:

   export CASSANDRA_HOST=cassandra.eu-west-1.amazonaws.com
   export CASSANDRA_PORT=9142
   export CASSANDRA_DATA_CENTER=eu-west-1

请注意,即使我将这些值硬编码到我的 application.yml 中,问题仍然存在。

【问题讨论】:

    标签: cassandra micronaut amazon-keyspaces


    【解决方案1】:

    我认为您需要在此示例中调整变量。 Apache Cassandra 或 Amazon Keyspaces 的常用语法是 host:port。对于 Amazon Keyspaces,端口始终为 9142。

    尝试以下方法:

    contact-points:
     - ${CASSANDRA_HOST}:${CASSANDRA_PORT}
    

    或者一开始只是对它们进行硬编码。

    contact-points:
     - cassandra.eu-west-1.amazonaws.com:9142
    

    【讨论】:

      【解决方案2】:

      所以这个:

      contact-points:
          - ${CASSANDRA_HOST:"127.0.0.1"}:${CASSANDRA_PORT:"9042"}
      

      与此不符:

      Node(endPoint=cassandra.eu-west-1.amazonaws.com/3.248.244.41:9142,
      

      仔细检查 Cassandra 正在广播的 IP 和端口(通常以 nodetool status 显示)并调整服务以不在 127.0.0.1 上查找它。

      【讨论】:

      • 嗨@Aaron,因为我使用的是密钥空间而不是管理我自己的集群,所以我无权访问nodetool status(据我所知)。我已经用更多细节更新了这个问题
      猜你喜欢
      • 1970-01-01
      • 2012-07-28
      • 1970-01-01
      • 2021-09-15
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 2021-08-31
      • 2018-02-07
      相关资源
      最近更新 更多