cassandra默認建keyspace的時候,是需要制定拓撲策略的,小數據就直接用單數據中心的simpleStrategy了,網上資料都沒具體提如何配置多數據中心,這里簡單貼一下
cassandra.yaml里面修改endpoint_snitch
具體的snitch方式有
simpleSnitch
默認的,單數據中心
GossipingPropertyFileSnitch
官方推薦在生產環境下使用,本節點的rack和dc名字保存在cassandra-rackdc.properties,並且會通過gossip這個p2p協議傳播到所有節點上去
如果cassandra-topology.properties文件存在,cassandra會把兩個properties文件的結果合並,如果兩個properties文件里面有有同一個節點的配置,以cassandra-rackdc.properties的配置為准。
PropertyFileSnitch
dc和rack通過顯式的定義在cassandra-topology.properties文件里面
建keyspace的時候,這樣指定
CREATE KEYSPACE "test_keyspace" WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'dc1' : 3, 'dc2' : 2};
意思是采用網絡多數據中心策略,有兩個數據中心,dc1的replica factor為3,dc2的replica factor為2
參考的地址http://www.datastax.com/documentation/cql/3.1/cql/cql_reference/create_keyspace_r.html