【架构师第 6 周】总结

发布于: 22 小时前

本周主要学习了分布式系统技术选型的相关知识,知识面还是比较广的,需要接下来再针对每个知识点进行深入研究。

分布式存储:

分布式数据库

当数据量不断增加,单台服务器已经无法有效保证数据库性能,并发能力也严重下降,这个时候该怎么做?

数据分片:

分片的原因:降低读写压力

1、硬编码id取模

2、映射表方式

这两种用的都不多,因为都需要应用程序做额外的操作,带来不必要的复杂性。

分布式数据库中间件,可以解决上述问题,比如MyCat

优点:对应用透明

具体的工作原理:sql解析,路由规则(通过配置),执行

 

集群伸缩:

1、提前规划schema,扩容时将现有的schema迁移到新机器上。这个方式类似Redis的slot

2、主从复制实现伸缩

3、数据库跟着应用分开部署,业务分库

NOSQL

CAP原理

一个分布式系统中,一致性(C)、可用性(A)、分区容错性(P)三个条件无法同时满足。

BASE

基本可用、软状态(允许系统中的数据存在中间状态)、最终一致

 

Doris原理

 

ZooKeeper原理:

  • zk主要保证一致性,所以会牺牲一定的可用性。

  • 集群中只有一台主服务器,所有从服务器和主服务器之间都是联通的,任意访问一台从服务器获取到的数据都是最新的,一致的。

  • zk中的数据结构是树状结构,每个节点是一个Node。node分为持久化节点和临时节点,临时节点在client断开后就删除了

  • 由于主服务器只有一台,如果主服务器出现故障,集群需要重新选主,在选出新leader前,整个集群不可用(为了保证一致性)。zk集群使用Zab协议选主,server有三种状态:

  • LOOKING:当前Server不知道leader是谁,正在搜寻

  • LEADING:当前Server即为选举出来的leader

  • FOLLOWING:leader已经选举出来,当前Server与之同步

  • 选主过程需要提案被半数以上的fllower接受

用户头像

浪浪

关注

还未添加个人签名 2020.04.28 加入

还未添加个人简介

评论

发布
暂无评论
【架构师第6周】总结