【问题标题】:CqlSession cannot connect to Azure Cosmos DB CassandraCqlSession 无法连接到 Azure Cosmos DB Cassandra
【发布时间】:2020-11-06 01:31:16
【问题描述】:

我有这个代码

@Bean
public CqlSession getCqlSession() {
    return CqlSession.builder()
            .addContactPoint(new InetSocketAddress(cassandraHost, cassandraPort))
            .withAuthCredentials(cassandraUsername, cassandraPassword)
            .build();
}

连接失败,出现以下异常:

Failed to instantiate [com.datastax.oss.driver.api.core.CqlSession]: Factory method 'getCqlSession' threw
exception; nested exception is com.datastax.oss.driver.api.core.AllNodesFailedException: Could not reach 
any contact point, make sure you've provided valid addresses (showing first 1 nodes, use getAllErrors()
for more): Node(endPoint=tinyurl-cassandra.cassandra.cosmos.azure.com/52.230.23.170:10350, hostId=null,
hashCode=237f706): [com.datastax.oss.driver.api.core.DriverTimeoutException: [s0|control|id: 0xb89dacff,
L:/192.168.0.101:59158 - R:tinyurl-cassandra.cassandra.cosmos.azure.com/52.230.23.170:10350] Protocol
initialization request, step 1 (OPTIONS): timed out after 5000 ms]

我是 Cassandra 的新手,并尝试了以下方法:

  1. 已验证凭据正常。
  2. 尝试使用csqlsh - 也无法连接。
  3. 检查我的机器上没有防火墙设置。可以远程登录到主机和端口。
  4. 可以从 Azure 数据资源管理器打开 Cassandra Shell。

我错过了什么?我是新来的。任何帮助将不胜感激。

【问题讨论】:

    标签: azure cassandra azure-cosmosdb


    【解决方案1】:

    看起来您正在使用 v.4x 版本的 Java 驱动程序。此驱动程序中的默认负载均衡要求您提供本地数据中心,例如:

                CqlSession.builder().withSslContext(sc)
                .addContactPoint(new InetSocketAddress(cassandraHost, cassandraPort)).**withLocalDatacenter("UK South")**
                .withAuthCredentials(cassandraUsername, cassandraPassword).build();
    

    您可以查看此入门示例以供进一步参考:https://github.com/Azure-Samples/azure-cosmos-db-cassandra-java-getting-started-v4

    【讨论】:

      猜你喜欢
      • 2019-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-14
      • 2016-01-01
      • 1970-01-01
      相关资源
      最近更新 更多