我在远程节点上使用 cassandra,只需使用控制台即可访问。由于该节点具有私有 IP,因此集群管理器设置了代理来访问 private_ip:9042,以便允许我对数据库执行查询,因此我有一个公共 ip:port。
不幸的是,我无法执行查询,我正在调查原因。
com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: /PUBLIC_IP:55092 (com.datastax.driver.core.exceptions.TransportException: [/PUBLIC_IP] Cannot connect))
我确信执行查询的过程没有问题,因为我尝试使用在本地主机上开发的相同 cassandra db。我猜问题出在远程节点上设置的侦听器上。使用 Kafka 时,我遇到了类似的问题,但我通过在配置文件中设置变量 advertised_listener 解决了该问题,指定了我用来访问节点的 public_ip:port。无论如何,我在 cassandra.yaml 文件中没有找到任何类似的东西。
您知道我该如何解决这个问题吗?
谢谢你,安德里亚
答案1
我解决了使用远程 ip 在 cassandra.yaml 中设置 broadcast_rpc_address 的问题。