AWS EC2 6节点Cassandra集群cassandra-rackdc与topology配置咨询
Cassandra跨区域集群拓扑配置指导
首先明确两个配置文件的适用场景:
- 若你在
cassandra.yaml中配置的endpoint_snitch为PropertyFileSnitch,需要配置cassandra-topology.properties,该方式为静态拓扑,所有节点的该文件内容必须完全一致,新增节点时需要同步更新所有节点的配置 - 若你使用更适合AWS环境的
GossipingPropertyFileSnitch,仅需要为每个节点单独配置自身的cassandra-rackdc.properties即可,拓扑信息会通过gossip协议自动同步,维护成本更低,更推荐跨区域集群使用
一、cassandra-rackdc.properties 配置示例(推荐)
所有节点统一将prefer_local设置为true,优先走同机架流量,降低跨区域传输成本,每个节点单独配置自身所属的DC和Rack即可:
eu-central-1区域节点配置
- node0(10.10.37.79):
dc=eu-central-1 rack=eu-central-1a prefer_local=true dc_suffix=
- node1(10.10.38.229):
dc=eu-central-1 rack=eu-central-1b prefer_local=true dc_suffix=
- node2(10.10.36.76):
dc=eu-central-1 rack=eu-central-1a prefer_local=true dc_suffix=
eu-west-1区域节点配置
- node3(10.10.37.80):
dc=eu-west-1 rack=eu-west-1a prefer_local=true dc_suffix=
- node4(10.10.39.177):
dc=eu-west-1 rack=eu-west-1b prefer_local=true dc_suffix=
- node5(10.10.37.231):
dc=eu-west-1 rack=eu-west-1a prefer_local=true dc_suffix=
二、cassandra-topology.properties 配置示例(PropertyFileSnitch专用)
所有节点的该文件内容必须完全一致,直接映射所有节点IP对应的DC和Rack即可:
10.10.37.79=eu-central-1:eu-central-1a 10.10.38.229=eu-central-1:eu-central-1b 10.10.36.76=eu-central-1:eu-central-1a 10.10.37.80=eu-west-1:eu-west-1a 10.10.39.177=eu-west-1:eu-west-1b 10.10.37.231=eu-west-1:eu-west-1a # 未知IP的默认归属规则,可根据自身需求调整 default=eu-central-1:eu-central-1a
配置注意事项
- DC、Rack名称必须全局统一,禁止出现拼写差异,否则会被Cassandra识别为不同的逻辑DC/Rack,导致副本分布异常
- Rack配置必须和AWS实际可用区对应,Cassandra会自动将副本分散到不同Rack,避免单可用区故障导致数据不可用
- 启动集群前需确保两个区域的VPC对等连接已打通,安全组放开Cassandra所需端口(7000、7001、9042等)的互相访问权限
- 节点启动顺序建议优先启动
cassandra.yaml中seed_provider配置的种子节点,再启动其他普通节点,避免拓扑识别异常
内容的提问来源于stack exchange,提问作者Haytham
相关产品推荐
相关产品推荐

