我有一个在服务器 (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
最佳答案
我能够解决问题如下:
- 将 cassandra.yaml 中的 rpc_address 属性更改为 0.0.0.0 而不是 localhost。
- 将 cassandra.yaml 中的 broadcast_rpc_address 属性设置为 0.0.0.0 以外的值
然后我就可以访问了。
关于java - Cassandra-cli 无法连接到远程 cassandra 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11659001/