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