Cassandra CQL 驱动程序实现

Cassandra CQL driver implementation

我已经使用 Cassandra CQL 驱动程序实现了一些模块。我知道 CQL 驱动程序在端口 9042.My 上工作模块在 cassandra 服务器的端口 9042 上工作正常(尝试了本地和远程)。然而,由于数据中心的某些限制,端口 9042 未对 Cassandra 开放。我需要让我的应用程序在这个数据中心上运行。

我们可以在端口 9160 上以某种方式使用相同的代码吗?我知道 9160 是节俭端口,用于 Cassandra 的许多其他驱动程序。我只是想知道是否有任何黑客可以使 CQL 驱动程序在 9160 上工作或尽可能少地修改代码以使其在 9160 上工作。

目前,当我尝试对端口 9160 使用相同的代码时,出现以下错误

com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s)  tried for query failed (tried: xx.yy.zz.aa        (com.datastax.driver.core.ConnectionException:  [xx.yy.zz.aa :9160] Unexpected   error during   transport initialization 
(com.datastax.driver.core.ConnectionException:   [xx.yy.zz.aa :9160] Operation timed out)),         xx.yy.zz.aa :9160 

当我尝试 telnet 9160 端口时

telnet xx.yy.zz.aa 9160
Trying xx.yy.zz.aa...
Connected to xx.yy.zz.aa.
Escape character is '^]'.
xyzaaaa
Connection closed by foreign host.

寻求帮助。

您可以通过将 native_transport_port from 9042 to 9160 in cassandra.yaml on your cassandra server(s). You will also need to change rpc_port 更改为 9160 以外的端口,使 CQL 接口在端口 9160 上可用。

在 datastax java-驱动程序中,您可以使用 withPort 方法配置要在 Cluster.Builder 中使用的端口。