gpt4 book ai didi

java - 如何通过 192.168.x.x IP 地址连接到 cassandra 集群?

转载 作者:行者123 更新时间:2023-11-30 03:40:29 26 4
gpt4 key购买 nike

这是一个用于测试与 cassandra 的连接的简单程序:

package testJava.db.cassandra;

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;

public class ConnectionTester {
public static void main (String[] args) {
Session session = null;
try {
Cluster cluster = Cluster.builder().addContactPoint("192.168.1.2").build();
session = cluster.connect("myspace");
System.out.println(session.getState());
} catch (Exception ex) {
ex.printStackTrace();
} finally {
if (session != null) {
session.close();
}
}
}
}

当我调整它时,我得到:

com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: /192.168.1.2:9042 (com.datastax.driver.core.TransportException: [/192.168.1.2:9042] Cannot connect))
at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:199)
at com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:80)
at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1199)
at com.datastax.driver.core.Cluster.init(Cluster.java:154)
at com.datastax.driver.core.Cluster.connect(Cluster.java:230)
at com.datastax.driver.core.Cluster.connect(Cluster.java:263)
at testJava.db.cassandra.ConnectionTester.main(ConnectionTester.java:11)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)

当我改变localhost192.168.1.2每件事都有效。另外ipconfig Windows 命令返回:

Ethernet adapter Local Area Connection:

Description . . . . . . . . . . . . . : Realtek PCIe GBE Family Controller
Physical Address. . . . . . . . . . . : 40-61-86-7C-4B-0F
DHCP Enabled. . . . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . . . : Yes
IPv4-address. . . . . . . . . . . . . : 192.168.1.2(Preffered)
Subnet Mask . . . . . . . . . . . . . : 255.255.255.0
Default gateway . . . . . . . . . . . : 192.168.1.1
DHCP-Server . . . . . . . . . . . . . : 192.168.1.1
DNS-Servers . . . . . . . . . . . . . : 192.168.1.1

所以很明显我的IP地址是192.168.1.2

重要

是的,我可以和 localhost 呆在一起或127.0.0.1但我想知道为什么我上面的例子不起作用。另外,当我指定 192.168.1.2 时在虚拟机上寻址并运行应用程序,即使 ping 命令有效,它也不起作用。

最佳答案

在 cassandra.yaml 中配置您的 rpc_address 以指向您的客户端用于连接到 Cassandra 的地址。

这些是 cassandra.yaml 中可配置的 3 个地址。

监听地址 - 这是其他 Cassandra 节点用于与该节点通信的 IP 地址。如果您在云上,内部 IP 地址对于提高性能很有帮助。

RPC 地址 - 这是您的客户端连接到的地址,可能是您想要配置为可从客户端计算机访问的 IP 的地址。

广播地址 - 如果您使用多个数据中心或 AWS 区域,其中并非所有节点都可以通过内部 IP 相互访问。您可以指定外部IP地址,使不同数据中心的节点仍然可以相互通信。在许多情况下,您根本不需要此设置,它将默认为您的监听地址。

关于java - 如何通过 192.168.x.x IP 地址连接到 cassandra 集群?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26904467/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com