cassandra多个数据中心实现异地容灾

cassandra是集群部署,多个节点,多个数据备份,一两个节点挂掉,一般不会有数据丢失。只要删除当掉的节点,对其它节点进行repair,数据都会自动均衡到完整的份数。但是如果大面积节点掉电,或者机房着火那就肯定要丢失数据了,使用cassandra作为数据存储的业务,肯定是很大的业务,数据量超大的那种。机房容灾肯定是必不可少的。 阅读全文

cassandra日常维护之nodetool cleanup

nodetool cleanup官方的解释是:cassandra在扩容一个节点到新集群的时候,有些数据会复制一份到新节点,然后属于新节点的数据仍然存在那些老节点上。它自己不会主动的去删除。所以在每次扩容之后,你需要在每个老节点上执行cleanup操作。 阅读全文

cassandra日常维护之nodetool repair

cassandra的根据分区key的操作是很快的,这也是它的优势,但是它的多条件查询是很弱的,特别是如果你有删除操作的话,就更坑爹了。cassandra的删除操作,实际上并不是真的删除,它是执行的插入操作,插入的数据叫做tombstone(墓碑),记录了被删除记录的信息和删除时间。当你根据条件查询的时候,如果它会把满足条件的记录查询出来,包括tombstone。然后过滤掉删除的记录,再把结果返回给你。解决tombstone问题,就是日常周期性的repair数据。 阅读全文

cassandra新版驱动,使用SchemaBuilder进行表的操作

在最新版的驱动cassandra-driver-core-2.1.3.jar中,提供了一种更方便的对表的修改方式。类似于用于增删改查操作的com.datastax.driver.core.querybuilder.QueryBuilder类,它提供了一个com.datastax.driver.core.schemabuilder.SchemaBuilder类用于对表的操作。 阅读全文

cassandra的连接池配置

cassandra集群的好处除了均衡数据之外,可以对请求进行负载均衡,客户端是和集群里所有的机器相连的,然后根据策略分发到不同的机器上,这个可以参考本站文章《关于cassandra集群的数据一致性问题》。cassandra的java datatsatx官方驱动,也有个连接池的在里面,本文描述怎么配置这个连接池。 阅读全文