这是我参与「第三届青训营 -后端场」笔记创作活动的第4篇笔记
架构
接入层
API
接入解析并并处理接口请求
元信息层
Object Meta
Bucket Meta
Distributed KV
存储对象元信息
存储引擎层
Storage Engine
Distributed Storage Pool
GC
Lifecycle: 温冷转换后台服务
存储对象内容
业务场景
容量型:海量存储和吞吐,高持久度,成本低
QPS型:对QPS要求极高,比如抽帧业务
解法
Partition
可扩展性,均匀分布,负载均衡,增加容量
Partition Logic:
-
Hash
主要用来确保数据在预先确定数目的分区中平均分布
随机写入,无序
用一个hash函数将key转换为一个数字,再对这个整数取模
-
Range
基于属于一个给定连续区间的列值,把多行分配给同一个分区,这些区间要连续且不能相互重叠
有序
各Partition之间如何负载均衡?
RoundRobin 可以参考blog.csdn.net/claram/arti…
平滑加权轮询法(Smooth Weight Round Robin)
Replication
高持久化,防止一切灾害导致数据丢失,提高强吞吐能力
副本放置策略:
- 多机架
- 多机房
- 多Region
拷贝方式以及如何解决一致性问题
参考cloud.tencent.com/developer/a…
EC
Erasure Coding
降低多副本拷贝的成本
优势
纠删码技术作为一门数据保护技术,自然有许多的优势,首先可以解决的就是目前分布式系统,云计算中采用副本来防止数据的丢失。副本机制确实可以解决数据丢失的问题,但是翻倍的数据存储空间也必然要被消耗,这一点却是非常致命的。EC技术的运用就可以直接解决这个问题。
劣势
EC技术的优势确实明显,但是他的使用也是需要一些代价的,一旦数据需要恢复,他会造成2大资源的消耗:
- 网络带宽的消耗,因为数据恢复需要去读其他的数据块和校验块
- 进行编码,解码计算需要消耗CPU资源
就是既耗网络又耗CPU
EC算法
参考www.jianshu.com/p/acf0f392b…
温冷转换
不常用的数据用廉价的存储介质存储,热点数据和一般数据就用SSD,HDD存。
高可用
集群拆分,一个集群拆分多个集群,减低爆炸半径
开启多个应用,双向同步
镜像灾备,增量双向同步
\