高并发系统实战课
徐长龙
前微博架构师、极客时间架构师
11663 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 30 讲
结束语&结课测试 (2讲)
高并发系统实战课
15
15
1.0x
00:00/00:00
登录|注册

21|业务缓存:元数据服务如何实现?

硬件更新
业务定制化
服务稳定性
文件管理
磁盘监控
文件名难懂
强制规范
FastDFS
容灾
文件传输服务
大文本的管理需求
替代缓存
大文件的管理
小文件更新数据
文件块管理
文件的索引管理与映射
读写管理
文件索引
分布式存储服务的问题
分布式存储系统
文件索引和存储工作
功能
思考题
总结
文件的云中转
对象存储如何管理大文本
对象存储如何管理小文件
对象存储的优势
分布式文件存储服务
对象存储

该思维导图由 AI 生成,仅供参考

你好,我是徐长龙。
当你随手打开微博或者一个综合的新闻网站,可以看到丰富的媒体文件,图片、文本、音频、视频应有尽有,一个页面甚至可能是由成百上千个文件组合而成。
那这些文件都存在哪里呢?通常来说,低于 1KB 的少量文本数据,我们会保存在数据库中,而比较大的文本或者多媒体文件(比如 MP4、TS、MP3、JPG、JS、CSS 等等)我们通常会保存在硬盘当中,这些文件的管理并不复杂。
不过如果文件数量达到百万以上,用硬盘管理文件的方式就比较麻烦了,因为用户请求到服务器时,有几十台服务器需要从上百块硬盘中找到文件保存在哪里,还得做好定期备份、统计访问记录等工作,这些给我们的研发工作带来了很大的困扰。
直到出现了对象存储这种技术,帮我们屏蔽掉了很多细节,这大大提升了研发效率。这节课,我们就聊聊存储的演变过程,让你对服务器存储和对象存储的原理和实践有更深的认识。

分布式文件存储服务

在讲解对象存储之前,我们先了解一下支撑它的基础——分布式文件存储服务,这也是互联网媒体资源的数据支撑基础。
我们先来具体分析一下,分布式文件存储提供了什么功能,以及数据库管理文件都需要做哪些事儿。因为数据库里保存的是文件路径,在迁移、归档以及副本备份时,就需要同步更新这些记录。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

对象存储服务的出现解决了分布式文件存储服务中的一些问题,使得研发人员能够更专注于业务开发。对象存储服务通过屏蔽底层实现细节,简化了文件管理和读写操作,提供了更简单、灵活的API方式管理文件对象,同时还提供了文件的索引管理与映射,使得管理数据和媒体文件更加便利。然而,对象存储也带来了一些新的挑战,如管理大量碎片化的小文件需要更多的管理策略和工具。本文还介绍了对象存储如何管理小文件和大文本,以及对象存储在文件的云中转和容灾方面的应用。通过对比传统存储方式,文章强调了对象存储的优势,如精简设计、降低磁盘维护的运维投入和维护成本。最后,文章提供了一些常用的对象存储项目,并呼吁读者对对象存储展开更深入的探索。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《高并发系统实战课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(4)

  • 最新
  • 精选
  • Elvis Lee
    提问:老师,作为文件存储,k8s部署MinIO集群这方案的优劣可以讲解一下吗。目前在仿真链路测试过,但还没上生产,想了解一下

    作者回复: 你好,简单说说印象,不支持append,meta,检索是前缀检索,检索的事时候会遍历前缀下面所有key,存储上比较浪费磁盘空间,上传下载速度算不错的,但是集群最大32个节点。系统架构简单,兼容amazon s3接口。附带一个测评参考,来自infoQ写作社区: https://xie.infoq.cn/article/a4be7d968ce22f31020427e65

    2023-02-15归属地:上海
    1
  • Geek_3c848e
    想请问“小文件压缩到大文件块里保存,小文件更新数据时,直接新建一个文件来更新内容。定期整理数据的时候,才会把新老数据合并写到新的块里,清理掉老数据”,这是否就是SSTABLE?

    作者回复: 你好,这个是指leveldb中吗?这个合并技巧在存储行业比较流行,多数是解决小文件太多问题用的,在leveldb中数据是排序的和存储还有些不同

    2023-04-10归属地:北京
  • 若水清菡
    分布式存储通过文件块作为单位来保存管理小文件,当我们对文件内容进行更新时,如何刷新这个文件的内容呢? 文中说到 “为此我们通常会在小文件更新数据时,直接新建一个文件来更新内容。定期整理数据的时候,才会把新老数据合并写到新的块里,清理掉老数据。”,对文件内容更新时,刷新这个文件的内容其实就是重新生成一个新的文件块的过程。

    作者回复: 你好,若水,说的没错,同时要更新索引,索引的数据要有多个版本方便回滚,并且数据长度如果不变的话不做多版本的话直接覆盖,同时建议全量修改不支持随机修改

    2023-01-25归属地:北京
  • thinkpc
    这里留个脑洞,如果我们的数据库也按对象存储方式思考,缩减掉所有复杂的操作,是否也可以抽象出新的机遇~
    2022-12-28归属地:北京
收起评论
显示
设置
留言
4
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部