Cassandra数据分布之1数据中心(DC)和机架(RACK)
本文所使用的Cassandra版本为1.2.0版。 这几天一直在一边学习Cassandra一边做测试。前天做了个集群压力测试,测了1个晚上,但因为有些概念不清晰,配置错误,最后白做了,今晚上调整了配置重新开始做。 错误的原因是把数据中心、机架的概念弄混了,多个数据中心的placement_strategy配成了SimpleStrategy,这肯定是不行了。下面说说我整理的内容和正确理解。 数据中心: 顾名思义就是存放数据的地方,百度百科的解释就不说了。我的理解是数据中心可以是一个机房或者一个区域的设备组合。其实这个概念也不太准确,主要还是看你自己的业务情况。如果业务量小,为了做个简单的灾备或可用性,一台服务器也可以是一个数据中心,如果业务量很大,并且需要考虑到网络的可用性问题,有时可能需要备移动、联通和电信的网络和机房,那就比较复杂了。据我了解的某银行的业务,就是以一个地区作为一个数据中心来互备的。如下图(不一定准确哦,嘿嘿,大体是这样的)。
下面再说一下机架,刚开始我把它和snitch搞混淆了。其实机架可简单的理解为存放服务器的机柜。 那数据中心与机架是什么关系呢?N:1,1:N,M:N。如果只需要几台服务器就能满足业务需求,这些服务器至少有2个数据中心,那这种情况下多个数据中心可以放在1个机架上,不过这种情况对数据灾备来说是不太保险的。第2种情况是1个数据中心相当于1个机房,那机房里会有多个机架。第3种情况M:N为多个机房的多个数据中心置于多个机架上。 而在Cassandra1.2.0中数据中心和机架的配置位于apache-cassandra-1.2.0confcassandra-topology.properties文件中,如: # Cassandra Node IP=Data Center:Rack 上面这段有3个数据中心DC1,DC2,DC3。DC1有两个机架RAC1,RAC2总共5个node,DC2有两个机架RAC1,RAC2总共4个node,DC3有两个机架RAC1,RAC2总共3个node。如果有新加入的node则把节点放于DC1:RAC1。数据中心和机架的关系就是我们上面说的M:N的关系了。(这个配置的生效需要在cassandra.yaml配置endpoint_snitch=PropertyFileSnitch或RackInferringSnitch。这个下篇写,呵呵。)
不过在官方文档中说:在整个集群中最简单和最常见的实现是只定义一个机架。多个机架应避免使用,原因如下:
正确使用机架(RACK):
参考:Multi-datacenter Replication in Cassandra,Cassandra权威指南,Deploying Cassandra across Multiple Data Centers,cassandra-s-rack-feature
Cassandra数据分布系列文章:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |