媒体数据传输协议
Media Data Transfer Protocol
如何在分布式Agent组件间高效传输大体积媒体文件
子问题
1.压缩编码策略(gzip/zlib+base64)
2.完整性校验(MD5)
3.增量传输(差异检测)
4.双向序列化(pack/unpack)
5.传输层透明化(拦截器自动编解码,节点无感知)
6.嵌套 payload 递归遍历(多层 dict/list 结构)
7.Session 级缓存隔离(三级目录防串扰)
各项目的解法1 solutions
Signals
横向对比
| 维度 | FireRed-OpenStoryline |
|---|---|
| 压缩编码策略 | gzip/zlib 双压缩 + base64 编码,CompressedFile 数据类封装元信息 |
| 完整性校验 | 原始数据 MD5 贯穿压缩-传输-解压全链路,解压时强校验 |
| 增量传输 | BaseNode._pack_item 比对 orig_md5,未修改文件只传 path 字符串 |
| 传输层透明 | ToolInterceptor before/after 拦截器自动处理,节点无感知 |
| 持久化策略 | ArtifactStore 三级目录隔离(session/artifact/file),递归提取 base64 落盘 |
| 递归遍历 | payload 中 dict/list 嵌套结构全层级递归处理 |
最佳实践
1.MD5校验检测文件是否变更避免重传
2.gzip压缩减少网络传输量
3.CompressedFile 数据类封装压缩元信息(大小/比率/方法)便于调试
4.拦截器模式将传输逻辑从业务节点中解耦
5.三级目录(session/artifact/file)隔离防止并发会话文件冲突