从 SoapUI 连接到 Cassandra 3.0.3(使用 9042)
Posted
技术标签:
【中文标题】从 SoapUI 连接到 Cassandra 3.0.3(使用 9042)【英文标题】:Connect to Cassandra 3.0.3 (using 9042) from SoapUI 【发布时间】:2017-02-19 23:34:51 【问题描述】:我想通过 JDBC 步骤从 SoapUI 连接到 Cassandra DB。并且还想使用 cql 进行不同的查询。 注意:我阅读了关于类似问题的现有答案,但它们对结果没有帮助。
前提条件:Cassandra DB(Cassandra 版本 3.0.3),在 IP smth 像 10.x.x.x,端口 9042 的服务器上
完成:我将以下 jar 添加到 <soapui>../bin/ext
:
- cassandra-all-3.9
- cassandra-clientutil-3.9
- cassandra-jdbc-1.2.5
- cassandra-thrift-3.9
- libthrift-0.9.3
- slf4j-api-1.7.7
- thrift-0.6.1
在 SoapUI 中,在配置中,我配置了:
Driver : org.apache.cassandra.cql.jdbc.CassandraDriver
Connection String : jdbc:cassandra://10.x.x.x:9042/profilename
但尝试测试连接 - 我只收到
java.sql.SQLNonTransientConnectionException: org.apache.thrift.transport.TTransportException:
Read a negative frame size (-2080374784)
问题:如何解决这个问题、建立连接以及查询数据库?
【问题讨论】:
您知道cassandra-all
包括Cassandra 服务器本身吗?
谢谢,将重做 jar 列表。
您知道自己在做什么,还是只是添加您找到的随机 jar 的随机版本?
我只是关注已经给出的类似主题的答案。
你在关注this one?这有一些非常糟糕和/或过时的答案。今天晚些时候我可能会写一个更好的。
【参考方案1】:
您似乎正在尝试将 rpc(thrift)客户端连接到本机 (CQL) 端口。
默认情况下,9042 应该是本机端口,9160 应该是 rpc 端口。这些可能已更改:查看服务器的 cassandra.yaml 并找到为 native_transport_port
和/或 rpc_port
配置的内容。
请记住,自 Cassandra 2.x 以来,thrift/rpc 已被弃用,您应该尽可能使用 CQL。
【讨论】:
谢谢,会的。此外,从 DataStax 检查 - 工作正常(查询等);在通过 9042 添加的 DataStax 连接中 如果这个JDBC驱动使用thrift,那么你需要使用端口9160。 在服务器上的 yaml 中检查(我无权更改任何内容,所以只是信息): native_transport_port: 9042; rpc_port:9160; //////继续研究,感谢您的初步建议。 那么您是否将连接字符串切换为 9160? 是的,我改变了,并且似乎建立了连接。但是在相同的 cql 查询(通过 SoapUI)上没有结果,它在 DataStax 中成功返回结果。以上是关于从 SoapUI 连接到 Cassandra 3.0.3(使用 9042)的主要内容,如果未能解决你的问题,请参考以下文章
Cassandra - 开发中心无法连接到 Cassandra 集群的所有 3 个节点
如何使用 Docker Desktop for Windows 从主机连接到 Cassandra