在应用开发初期,通常会直接通过代码在应用中实现文件处理的功能,然而内置的文件处理逻辑会抢占核心资源,比如并发处理会导致 CPU、内存占满,从而导致应用其他功能无法正常使用。本文推荐使用函数计算来托管运行多媒体文件处理的代码。函数计算的按需扩展和自动化管理特性,显著提升了文件处理的效率和可靠性。通过解耦文件处理逻辑、减少资源争用、增强安全性和提高可维护性,开发者可以结合对象存储、异步处理和自动扩展能力,构建高效、稳定和安全的文件处理系统。
将文件处理任务与核心应用解耦,减少资源争用,增强安全性和提高可维护性。
按量付费模型按实际使用计算资源计费,资源利用率高。
预留实例系统不自动回收,可长驻不销毁,消除冷启动带来的延时毛刺。
在应用中处理文件 | VS | 使用函数计算处理文件 |
稳定性弱 计算资源消耗大,容易产生 CPU、内存和 IO 资源争抢和系统负载过高,影响系统稳定性。 | 稳定性 | 高可用保障 解耦核心业务和文件处理,文件处理函数由云厂商提供高可用保障。 |
扩展难度大 动态扩展难,处理峰值流量需要预先配置大量计算资源。 | 扩展性 | 弹性伸缩 自动弹性伸缩,应对各种突发流量,资源交付能力强。 |
成本高 为峰值预配置资源利用率不高,产生成本浪费。 | 成本 | 按量付费 只在需要处理文件时消耗计算资源,按使用付费,节省成本。 |
本方案使用云服务器 ECS 和 RDS MySQL 版提供 WEB 服务,通过对象存储 OSS 存储用户文件。采用服务端签名的 WEB 直传方式,将文件上传直接发送到 OSS,减少对应用网络资源的占用。文件上传到 OSS 后,通过事件驱动机制触发函数计算执行文件处理任务(示例代码是将 PPT 转换为 PDF 并添加水印)。处理完成后,通过 OSS 事件触发的轻量消息队列(原 MNS )通知应用。
电商网站和社交媒体网站会涉及大量图片的处理,如提供适配不同的手机分辨率、生成缩略图和增加水印防盗用等。
视频网站或涉及直播点播的网站会有大量视频文件的使用,为了保障视频播放效果需要进行转码、调整分辨率、生成首屏图片等。
广告 RTA( Real-Time Advertising )通过实时处理和分析用户数据,在毫秒级别内完成广告竞价和展示。
你好,我是AI助理
可以解答问题、推荐解决方案等