【发布时间】:2016-07-13 14:42:34
【问题描述】:
假设我们在 GCE 上有一个 3 节点 (linux) cassandra 3.7 集群(EC2 可能相同)。虚拟机知道它们的私有 IP,也有一个公共 IP。
节点是根据doc: multiple network interfaces 配置的,简而言之,将私有 IP 用于监听地址,公共 IP 用于广播地址,公共 IP 用于种子。
根据上面的文档,“Cassandra 在建立连接后切换到私有 IP。”但这不会发生,tcpdump 显示到端口 7000 的流量的一端始终是公共 IP。 在 cassandra-rackdc.properties 上使用“prefer_local=true”只会使客户端尝试连接到失败的私有 IP。
所有这些都有效,客户端连接并且节点可以看到彼此,但是节点之间的通信是通过它们的公共 IP 进行的。我们希望客户端连接到公共 IP,从协调器获取公共 IP 列表作为联系点(端点),但协调器通过私有 IP 转发请求。可以这样做(没有 iptables 等)吗?
【问题讨论】:
标签: cassandra google-compute-engine