数据的存储思路
数据采用多pod方案增加镜像,而不能增大内存。
# 1.为什么要采用多镜像思路?
由于没有
注册中心
,数据的安全性至关重要,多pod
镜像模式可以做到,1pod在,多pod都在。多pod思路,pod较为统一,
协同管理
比较方便。k8s本身对于时间挂载卷扩容就比较方便,无需再次实现数据的统一管理
提示
redis 其实部分替代了注册中心的功能,如在redis里进行心跳,选出最优pod。
# 1.1.使用k8s动态卷分配
每个新起来的pod都会分配给一个全新的pv(存储空间),后迅速与其他pod进行数据同步,由于每个pod都有不同的空间,保证了相对较高的io性能。
# 1.2.pod之间的状态关系
由于pod在k8s cluster 中是随机负载均衡的,那么,控制无论访问哪个pod,得到相同的结果至关重要。由于各种数据内部的流动关系,或者网络等环境状态不同,image-manage有三重手段保证数据一直。
提示
image-manage使用三重手段保证数据同步。
# 1.3.md5去重过滤
由于可能存在重复文件,因此当用户上传文件后,image-manage会进行一次md5计算,如果存在当前文件,image-manage并不会再次存储文件,而是把用户文件引用指向已经存在的文件。
注意
当然,md5去重并非完美无缺,当文件庞大到一定的数量级的时候会存在md5碰撞,不过md5代价较小,一般情况下,nd5足够