首页 > 解决方案 > 在 NAT 环境中配置 Cassandra 部署

问题描述

这是一种部署方案,其中 NAT 存在于 DC 边界之间,以下是要求:

卡桑德拉版本:2.1.13

  1. 有 2 个 DC,两个跨 DC 的 Cassandra 节点(dc1:node1 和 dc2:node3)应使用公共 IP 跨 NAT 边界进行通信。
  2. 位于 NAT 后面的 DC 之一有 2 个 Cassandra 节点(dc1:node1 和 dc1:node2),它们都应该使用私有 IP 在 NAT 内进行通信。
  3. 所有这 3 个节点(dc1:node1、dc1:node2 和 dc2:node3)应该形成一个环并相互通信。

调查了种子、listen_address、broadcast_address 和 broadcast_rpc_address。 https://docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html

如果广播地址和种子中使用了公共 IP,则跨 DC 和 NAT 通信可以工作,但是 NAT 内的节点无法相互检测。

如果在广播地址和种子中使用了私有 IP,那么在 DC 和 NAT 内通信可以工作,但是跨 DC 和 NAT 的节点无法相互检测到。

调查了 Ec2MultiRegionSnitch,但这不适用于前提部署:https ://docs.datastax.com/en/cassandra/2.1/cassandra/architecture/architectureSnitchEC2MultiRegion_c.html#architectureSnitchEC2MultiRegion_c__other-settings

实现上述 3 个要求需要哪些配置设置?

标签: amazon-ec2cassandradatastax-enterprise

解决方案


使用 gossiping 属性文件 snitch,将 public ip 设置为 broadcast_address,将 private ip 设置为 listen_address。如果在其他 DC,他们将使用相同 DC 中的 listen_address 和广播地址。


推荐阅读