有100w数据插入 分成了5个region存入 20W数据一个
1-20W 存入region1时候 会在其他两个节点选择两个副本做数据同步,然后选择一个节点做leader去做所有的读和写
20W-40w存入region2时候 会在空闲的节点存储,也生成两个副本做数据同步,并且选一个leader去做所有的读和写
40w-60w以此类推
这样可以打到分布式计算,region1在1号节点读写,region2在2号节点读写,region3在3号节点读写,。。。。
另外PD还可以检测个个节点繁忙程度 来调节个个节点的数据量
raft算法
有三个节点ABC,开始都是从节点,然后每个节点随机获取一个100ms-300ms的超时等待时间,
时间过后向另外两个节点发送消息“我要当主节点你投我一票吧” 当某个节点投票过半数就成为主节点
已经投过票的节点不能再投其他节点
leader会给其他两个节点 不停地发心跳包
如果 其他节点在超时时间内没收到leader心跳包 就会认定主宕掉了,选一个新leader
主节点把数据通过日志,发送给其他从节点,实现数据的最终一致性