写点什么

2020.10.26-2020.11.01 学习总结

用户头像
icydolphin
关注
发布于: 2020 年 11 月 01 日



本周学习目标



分布式系统使用到的中间件及其原理:CAP原理;数据存储——分布式关系型数据库和nosql数据库;分布式数据一致性解决方案——zookeeper等配置管理中心;大量数据的检索——搜索引擎;以及一个nosql解决方案的应用举例。

分布式关系型数据库

关系型数据库的特点:ACID,但当数据量不断增加时,数据库存储及访问瓶颈很容易出现,同时如何提高关系型数据库的可用性?

为提高数据库的存储量,可以对数据库进行分库分表,使用什么样的规则进行分库分表?避免查询时同时查多个库和多个表,导致分页处理很困难。分库分表前已经预先估算了可能的存储量,那么如何进行扩容?估计一个最大分库个数后,让业务使用逻辑上的分片连接,与真实的物理连接建立一张映射表。

NOSQL数据库

可支持大数据量存储,可线性伸缩,能够保证数据的最终一致性,且数据均有副本,保证了可用性。常用的nosql数据库是如何保持可用性和一致性的呢?

Cassanddra使用投票选举的方式保证对外的返回一致,用户可以访问任意一个节点,任意一个节点上都有路由表确定数据应该存放到哪几个节点上,然后又该节点进行写入,如果有超过半数的节点写入成功,就认为是写入成功了。

Hbase使用Hmaster进行路由选择,告诉应用程序应该连接哪个HRegionServer进行写入或者读取,如果Hmaster是单节点的话则存在可用性问题,因此Hmaster也是一个集群,通过zookeeper进行管理。

ZOOKEEPER

分布式一致性的解决方案,使用Zab协议进行选举。集群中有一个leader,应用程序发起请求后,接收到请求的follwer向leader发起请求,leader生成提案询问所有的follower,当所有follower进行了ack确认后,leader把选举结果commit到所有的follower上,这样每个节点上就存有一致的数据了。



用户头像

icydolphin

关注

还未添加个人签名 2018.05.05 加入

还未添加个人简介

评论

发布
暂无评论
2020.10.26-2020.11.01 学习总结