文档首页 > > 最佳实践> 通过CDN实现OBS桶下载加速> 多云存储数据同步方案

多云存储数据同步方案

分享
更新时间: 2020/03/11 GMT+08:00

应用双写

如果数据是在应用服务侧产生,或者数据在客户端产生但通过服务端将数据写入对象存储,则建议使用双写方案,架构如下:

图1 应用双写

此时业务应用可对接两家对象存储的SDK,将文件以同步模式或者异步模式写入两家对象存储。对象存储的上行流量免费,所以该架构不会增加任何成本。

数据回源

如果数据上传逻辑不做改变,则可使用OBS的“数据回源”功能,在文件访问请求到达OBS而OBS桶里没有该文件时,可通过“数据回源”将客户端请求重定向到设定的源站并异步地从源站将数据拉取到OBS存储下来,架构如下:

图2 数据回源

详细流程说明:

1)客户端向华为CDN发起获取文件的请求

2)华为CDN回源到华为OBS请求文件,OBS侧事先配置好数据回源,当请求的文件不存在时,会响应302重定向到配置的源站(此处为其他云对象存储)

3)华为CDN接收到OBS返回的302请求

4)OBS异步从客户配置的源站拉取文件

5)华为CDN处理302跳转到其他云对象存储侧获取数据

6)其他云对象存储响应华为CDN的文件请求

7)华为CDN将文件内容返回给客户端,当下次客户端请求同样的文件时,华为CDN直接回源到OBS获取。

“数据回源”功能是被动触发式,即只有向OBS发起请求后OBS才会到设置的源站将数据拉取过来,所以当一个新文件上传到其他云对象存储后,建议业务应用程序向OBS触发一个GET请求来拉取数据(发起GET请求后可关闭连接,无需接收实体数据)。另外该架构会在其他云对象存储侧产生两份数据流量(针对同一个文件,CDN拉取一次,OBS拉取一次)。

Serverless触发式上传

不改变原有的上传逻辑,当文件上传到其他云对象存储后,触发函数计算服务,通过Serverless方式将文件同步到华为云OBS,架构如下:

图3 Serverless触发式上传

该架构需要客户在其他云启用函数计算服务并部署上传文件到OBS的代码,会产生函数计算服务的费用。

至于存量数据的迁移方案(比如从其他云对象存储迁移存量数据到OBS),这里不做展开,可参考相关博客:OMS数据迁移实践

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问