前言
Cassandra是一款非常优秀的分布式数据库,可以灵活的在线扩容,满足业务水平扩展的需求。本文将会详细阐述扩容中可能遇到的问题,帮助Cassandra用户更好的管理Cassandra。
扩容原理
Cassandra采用一致性Hash算法对数据进行分区打散。
上图不同颜色代表不同节点,每个节点会有虚拟节点在环上(图示每个节点有3个),具体有多少个虚拟节点,取决于这个配置:
num_tokens: 256
这个值不能调得太低,不然虚拟节点不够容易出现数据倾斜。
Cassandra称这些虚拟节点为Token,Token就是一个长整型数。2个Token之间构成一个左开右闭的区间(Range),落在这个区间内的数据都归右边界的Token所对应的节点管理(数据会用同样的Hash算法得到一个长整型值映射到环上)。比如:(100,200]
,200这个T