java - Cassandra-cli 无法连接到远程 cassandra 服务器

标签 java nosql cassandra thrift thrift-protocol

我有一个在服务器 (serv1) 上运行的 cassandra 服务器。 cassandra-cli 在 serv1 上运行时可以连接到它。但是,当我尝试通过其他服务器 (serv2) 连接到它时,出现以下异常:

org.apache.thrift.transport.TTransportException: java.net.ConnectException: Connection refused
    at org.apache.thrift.transport.TSocket.open(TSocket.java:183)
    at org.apache.thrift.transport.TFramedTransport.open(TFramedTransport.java:81)
    at org.apache.cassandra.cli.CliMain.connect(CliMain.java:80)
    at org.apache.cassandra.cli.CliMain.main(CliMain.java:256)
Caused by: java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
    at java.net.Socket.connect(Socket.java:529)
    at org.apache.thrift.transport.TSocket.open(TSocket.java:178)
    ... 3 more
Exception connecting to jckstore/9160. Reason: Connection refused.

我查看了 cassandra.yaml,发现属性“listen_address”被配置为“localhost”,严重不鼓励使用 0.0.0.0。我试图将 localhost 更改为 serv2,serv1 的 ip 地址,但没有任何效果。即使评论出来也无济于事。

有没有办法让我的 cassandra 服务器在不使用 0.0.0.0 的情况下监听所有 ip

最佳答案

我能够解决问题如下:

  1. 将 cassandra.yaml 中的 rpc_address 属性更改为 0.0.0.0 而不是 localhost。
  2. 将 cassandra.yaml 中的 broadcast_rpc_address 属性设置为 0.0.0.0 以外的值

然后我就可以访问了。

关于java - Cassandra-cli 无法连接到远程 cassandra 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11659001/

相关文章:

java - JSON 中新日期对象的正则表达式

java - 有什么办法可以简化这个流表达式吗?

mongodb - 如何对 noSql 数据库中的数据进行建模

mongodb - 如何在 MongoDB 中处理大数据集

aerospike - Aerospike设计|申请流程内部|资源

Python Cassandra - 类型错误 : object of type 'UUID' has no len()

apache-spark - Apache Spark SQL 读写 Cassandra TTL

python - 是否可以通过 django-cassandra-engine 连接到多个集群?

java - json(gson)parse 解析时改变数据类型

java - 访问 App Engine 拉取队列 - 激活 TaskQueue API