cassandra - 如何配置 Cassandra 监听的接口(interface)?

标签 cassandra

我正在尝试使用 OpenJDK 1.8 在 Ubuntu 15.10 上设置测试 Cassandra 3.3 集群。节点无法相互通信,因为 Cassandra 仅在环回接口(interface)上监听,如 netstat 所示。

tcp        0      0 127.0.0.1:7199          0.0.0.0:*               LISTEN     
tcp6       0      0 127.0.0.1:9042          :::*                    LISTEN

我试图在/etc/cassandra/cassandra.yml 中插入我的外部 IP 地址。

  • listen_address:我尝试了实际的外部 IP 地址并将该字段留空。

  • rpc_address:我试了实际的外部IP地址和0.0.0.0。

我还尝试修改/etc/cassandra/cassandra-env.sh 中的以下内容。

JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<actual external IP address>"

在每次更改之间,我都会停止服务,删除/var/lib/cassandra/data/system,然后重新启动服务。

如何配置 Cassandra 监听的接口(interface)?

最佳答案

rpc_address 是外部应用程序客户端将用于连接 Cassandra 的地址。

listen_address 是 Cassandra 将用来连接到其他 Cassandra 节点的地址。

我会确保您的节点可以在该 IP 上进行通信。具体来说,Cassandra 将使用端口 7000 进行节点间通信(如果使用节点到节点 SSL,则为 7001)。最好的测试方法是使用 telnet。如果它有效,这就是您将看到的:

$ telnet 192.168.0.101 7000
Trying 192.168.0.101...
Connected to 192.168.0.101.
Escape character is '^]'.

所以我会:

  1. 确定节点是否可以在端口 7000 上相互通信。
  2. 如果可以,请在每个 cassandra.yaml 的 listen_address 中设置他们彼此看到的 IP。
  3. 您可能还想选择其中一个作为种子节点。

关于cassandra - 如何配置 Cassandra 监听的接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36432887/

相关文章:

PT2S 后 Cassandra 写入查询超时

cassandra 1.2 无法在 freebsd 中初始化 snappy

cassandra - Cassandra 是否能够检测不经常使用的损坏数据?

java - 如何解决cassandra中的写超时异常?

cassandra - 支持对现有提要表进行逻辑删除

Cassandra 覆盖/更新行的最佳实践?

具有多个计数器列的Cassandra表

nosql - Cassandra/BigTable 数据模型 - 构建索引的最佳方法是什么?

java - 是否可以禁用日志文件中的 TimingLogger 行?

java - 在 Java 中连接和使用 Cassandra