对象存储
存储系统的优势
分布式文件系统和对象存储比较:
对象存储接口:
直接通过http生成URL来获取数据
适用场景:视频、图片、文本等静态文件
不适用场景:关系型数据(订单)、更新频繁等动态文件
对象存储使用
申请bucket->业务逻辑开发->上线测试
restful接口
MultiUpload接口
场景:上传大文件
思想:分治
InitUpload:接收bucket,key的参数,返回uploadid
UploadPart:接收uploadid,partid,part内容,返回是否成功
CompleteUpload:接收uploadid,partid array,返回是否成功
通过一个Uploadid来识别
Listprefix接口
场景:查看桶里有哪些文件
参数:
prefix:key前缀
delimiter:分隔符
max-keys:本次分页数量
start-after:分页起始对象的key
实践
可扩展性:partition
分布式存储:分布式+单机存储
分布式可以分为存储均匀分布,压力均匀分布,计算均匀分布
partition logic:hash或range
将不同数据映射到不同分区
达成可扩展性方法:新建partition与修改partition logic
持久性:replication
机架:同一机房
机房:不同地区
region:更大范围
策略:设置多个副本
优势:带来持久性与强吞吐能力
成本
EC
冗余编码:达到和多副本一样的持久度
计算校验块
任何一块坏了,可以通过其他的计算出来
要求额外计算
可用性
集群拆分
一个集群拆分为多个集群,作用是降低爆炸半径
镜像灾备
主备bucket,完全相同出现问题随时转换