cqlsession无法连接到azure cosmos db cassandra

63lcw9qa  于 2021-06-09  发布在  Cassandra
关注(0)|答案(1)|浏览(521)

我有这个密码

@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的新手,尝试过以下方法:
已验证凭据是否正确。
尝试 csqlsh -也无法连接。
检查我的机器中没有防火墙设置。可以远程登录到主机和端口。
可以从azure数据资源管理器打开cassandra shell。
我错过了什么?我是新来的。任何帮助都将不胜感激。

hwamh0ep

hwamh0ep1#

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

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

相关问题