分片:
分布式存储中当数据量太大,单点存储空间有限是,数据分片的概念产生了,它是对技术的抽象增强,按一定规则将数据分类存储,数据还没存进数据库之前,对数据分片,存到约定好的地方,是横向加强;
把数据拆分成平均多份,每一份存储到不同的子节点上,同时达到负载均衡和扩容的目的,这就叫数据的分片,也叫数据的分布式存储;
如:Redis3.0加入了cluster,实现了集群的分布式存储也就是分片:
Rediscluster没有使用一致性hash,而是引入了哈希槽概念
Rediscluster集群有16384个哈希槽,每个存入的key先经过CRC16校验生成的结果对17384取模得到0-16383的数,从而确定了此key的数据应该存在哪个哈希槽
Rediscluster集群每个节点平分这16384个哈希槽进行管理
分区:
物理数据库设计思路,将数据库中已有的表拆分开存储,分为水平分区和垂直分区;水平分区是将表按时间或按季度等划分开;垂直分区是将表按列分开,减少每张表的宽度;分区之后他们还是一个整体,只不过分开存储
分区备份实现容错时;每个区内的各个follower(副本)存放相同数据,每个区有自己的leader,leader执行写操作,同步到下属的follower;
如:kafka的分区Partition:
每个主题被分为若干分区或只有一个分区,同一主题中的分区