Week6 学习总结

发布于: 21 小时前

分布式数据库与NoSQL

根据老师讲到的分布式数据库知识及网上查到的,做以下总结:

一、分布式数据库的数据存储

将数据分布到不同的节点上的方式有:

  • 哈希分布:比如按数据主键进行一致性哈希分布

  • 顺序分布:将数据按照主键切分为有序的范围,每个有序范围内的数据存储到一个节点上

  • 根据哈希/顺序范围,负载均衡分布:分布式存储系统自动识别负载(机器Load值、CPU、内存、磁盘、网络、QPS、线程等资源使用率)高的节点,将它服务的部分数据迁移到其他机器,实现自动负载均衡

二、数据节点高可用

在分布式存储系统中,随着集群规模变得越来越大,故障发生的概率也越来越大。大规模集群每天都有故障发生,其中出现故障最高概率的是:单机故障、磁盘故障。

为了保证分布式存储系统的高可靠和高可用,需要对每个节点的数据进行多副本复制备份:

  • 主副本(Primary)一般只有一个,可以提供读 / 写服务;

  • 备副本(Backup)可以有多个,不对外服务 / 提供只读服务。

  • 若主副本出现故障,需要选举一个备副本成为新的主副本,这个操作成为“选举”。

  • 可以通过总控节点租约协议、分布式锁、选举协议比如Paxos协议(使用典例:ZooKeeper)等进行新主副本的选举。

三、数据库的部署方案

单一

两个web服务及两个数据库(业务分离)

综合部署方案(主从、主主复制 、分片等)

四、如何做集群的伸缩

现实中使用余数hash算法分配数据

一开始在规划数据库时就要把所有的schema都提前规划好了,之后在增加服务器时,把现有的schema迁移到新的服务器,如下图所示

用户头像

Geek_165f3d

关注

还未添加个人签名 2019.12.14 加入

还未添加个人简介

评论

发布
暂无评论
Week6学习总结