以下是一个部署方案,其中在DC边界之间存在NAT,以下是要求:
Cassandra版本:2.1.13
查看种子,listen_address,broadcast_address& broadcast_rpc_address。 https://docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html
如果在broadcast_address和种子中使用了公共IP,则在DC& NAT通信正常工作,但NAT内的节点无法互相检测。
如果在broadcast_address和种子中使用私有IP,则在DC& NAT通信工作,但DC和DC之间的节点。 NAT无法互相检测。
查看Ec2MultiRegionSnitch,但这不适用于前提部署:https://docs.datastax.com/en/cassandra/2.1/cassandra/architecture/architectureSnitchEC2MultiRegion_c.html#architectureSnitchEC2MultiRegion_c__other-settings
要达到3项以上要求需要哪些配置设置?
答案 0 :(得分:3)
使用gossiping属性文件snitch,将public ip设置为broadcast_address,将private ip设置为listen_address。如果在其他DC中,他们将在相同的DC和广播地址中使用listen_address。
答案 1 :(得分:0)
使用种子=公共地址,listen_address =私有和broadcast_address =公共进行的设置。 在所有3个节点上进行以下设置:
是因为种子在NAT后面的DC内具有公共地址可能不起作用吗?
检查在dc1:node1上侦听的一项观察,列出了专用IP:
node1# netstat -anp | grep -E "(7001)"
tcp 0 0 dc1:node1_privateIP:7001 0.0.0.0:* LISTEN 9999/java
dc1:node2可以与dc1:node1_publicIP建立连接吗? 这个https://issues.apache.org/jira/browse/CASSANDRA-9748是这里相关的还是仅适用于多个NICS而不是NAT环境?