图片上传与管理系统设计全解析
1. 客户端生成缩略图方法的局限性
在客户端生成缩略图的方法存在一些明显的局限性。首先,引入非向后兼容代码较为困难,这会限制系统的可扩展性和灵活性。其次,代码库变得更大且难以维护,这对开发团队的管理和维护工作带来了挑战。此外,该方法会消耗客户端更多的计算资源和能源,对于移动设备而言,这可能会导致电池续航能力下降等问题。最后,额外的代码会增加客户端应用的大小,虽然对于少数功能来说影响较小,但如果大量逻辑都需要此类保护措施,累积起来的影响就不容忽视了。
2. 后端生成缩略图
后端生成缩略图虽然需要更多的硬件资源和工程维护工作,但可以使用与其他服务相同的语言和工具。主要步骤如下:
1. 上传前检查 :在上传文件之前,检查该文件是否已经上传过,避免昂贵且不必要的重复上传。
2. 文件上传 :将文件上传到文件存储服务和内容分发网络(CDN)。
3. 缩略图生成与上传 :生成缩略图并将其上传到文件存储服务和 CDN。
当文件上传到后端时,后端会将文件写入文件存储服务和 CDN,然后触发流式作业生成缩略图。文件存储服务主要作为上传到 CDN 的缓冲区,可以在数据中心内的主机之间实现复制,但不涉及其他数据中心。在发生重大数据中心故障导致数据丢失的情况下,可以使用 CDN 中的文件进行恢复操作,文件存储服务和 CDN 可以相互作为备份。
对于可扩展的图像文件上传,部分上传步骤可以异步进行,因此可以采用 Saga 方法。下面详细介绍两种 Saga 方法:
超级会员免费看
订阅专栏 解锁全文

5059

被折叠的 条评论
为什么被折叠?



