写点什么

架构师训练营第六周总结

用户头像
王鑫龙
关注
发布于: 2020 年 07 月 15 日

不知不觉已经过了六周了,快一半时间了。



  • 数据分片

数据量大,分布式存储,就需要用到数据分片

两种普通分片方法:



第一种方法扩展麻烦,需要自己组合数据

第二种方法需要维护一个外部数据存储表,这个表可能很大,也增加了数据查询的依赖性

使用分布式数据库中间件可以较方便的实现数据分片,中间件来负责分割与组合数据。



  • 数据库部署方案









  • CAP原理

一致性:读取时返回最新的写入数据,或者错误,不要返回过期数据。

可用性:每次请求都能得到响应,不能失去响应或返回错误;允许响应过期数据。

分区耐受性:部分服务器节点之间消息丢失或延迟,系统依然可以操作。



对于分布式系统而言,系统环境复杂,分区耐受性必须保证。CAP原理即是在分布式系统必须要满足分区耐受性的前提下,可用性和一致性无法同时满足。



最终一致性:由于服务器节点消息丢失,导致不同服务器写入的数据未一致,当故障恢复时使数据一致。

简单冲突处理策略:根据时间戳,最后写入覆盖。

客户端冲突解决:合并同一用户不同客户端数据。

Cassandra分布式解决方案



  • Hbase架构



Log Structed Merge Tree



  • ACID与BASE

A原子性(Atomicity):全部完成或全部取消,不部分生效。

I隔离性(Isolation):事务之间不互相影响。一般通过锁实现。

D持久性(Durability):事务提交后,数据必须要成功保存到硬盘中。

C一致性(Consistency):合法数据(满足关系约束和函数约束)才可以写入到数据库。



BASE:

BA(Basically Available)系统出现不可预知故障时,允许损失部分可用性,如相应变慢,部分功能不可用。

S(Soft state)弱状态:允许不同节点的数据副本之间进行数据同步的过程存在延时。

E(Eventually consistent)最终一致性:经过一段时间的同步后,不同数据副本之间能最终一致。



  • 分布式一致ZooKeeper



  • Doris - 海量 KV Engine































架构师要自己可以设计框架,Doris是一个分布式集群KV存储引擎。

关键技术点是数据分区、可用性管理。数据分区使用分布式一致性Hash算法,进行了一些优化,本质上还是基于虚拟节点。在集群管理中,分布式一致性Hash算法是很关键的一个算法。

可用性管理:

故障管理(分三级:瞬时失效、临时失效、永久失效)。

扩容:重新计算节点并迁移数据。



发布于: 2020 年 07 月 15 日阅读数: 48
用户头像

王鑫龙

关注

还未添加个人签名 2018.02.04 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第六周总结