[喵咪海外部署]海外文件分发方案演进-阿里云开发者社区

开发者社区> 喵了个咪_> 正文

[喵咪海外部署]海外文件分发方案演进

简介: 在开阔海外市场遇到的第一个问题就是文件分发,因为初期文件肯定是存放到国内服务器上,给到海外访问速度及其缓慢笔者这边试下来欧洲只有20KB/s,一个300MB的文件要下载一天,因为这个问题就有了我们今天的主题海外文件分发方案演进,请紧张的往下看!
+关注继续查看

在开阔海外市场遇到的第一个问题就是文件分发,因为初期文件肯定是存放到国内服务器上,给到海外访问速度及其缓慢笔者这边试下来欧洲只有20KB/s,一个300MB的文件要下载一天,因为这个问题就有了我们今天的主题海外文件分发方案演进,请紧张的往下看!

附上:

喵了个咪的博客:w-blog.cn

1.文件分发1.0

主要思想 : 使用CDN解决多次下载问题,国内继续使用阿里云,海外使用AWS等CDN进行加速

笔者在进行第一次演进的时候主要使用的方式就是在文件分发领域中常用的CDN技术来进行优化,在之前也有使用阿里云提供的全球CDN加速,但是在海外尝试下来首次下载因为需要回源的原因速度只有之前所谓的20KB/S,回源之后有CDN缓存之后也并不是特别理想也只有几百KB的速度

从理论上来说使用CDN服务器除了回源其余的下载是很快的可能是阿里云海外CDN节点质量并不是很高,就算有缓存之后下载速度也一直提不上来,我们就开始选择新的CDN运营商,通过测试效果最好的是 AWS CloudFront 开启了边缘地区加速之后除了回源的下载速度能够达到20MB/S非常惊人的速度,一般客户使用下来也有10MB/S

PS:这就还要使用到另外一个技术就是DNS动态解析域名托管服务都会有此类服务,当域名在国内访问的时候域名CNAME到阿里云的CDN,在国外访问的时候域名CNAME到AWS的CDN

2.文件分发2.0

主要思想 : 通过转发文件来解决回源慢的问题

虽然文件分发1.0解决了多次下载但是接着我们又遇到了另外一个问题,首次回源的时间太久了,因为在海外CDN节点在全球大部分节点在首次访问的时候都会回流到国内获取文件,第一次还是只有20KB/S的速度根本连第一次都没有办法缓存成功

导致这个问题的主要问题是防火墙屏蔽,离国内远的地方请求国内的资源防火墙会限制速度,这边选择通过新加坡Nginx反向代理文件服务作为回源地址,服务器最大带宽是20MB通过测试首次访问时下载速度会总100KB/S慢慢加经过块30秒后可以达到2MB/S最大速度

这样已经可以提高速度但是速度提高到极限的时间还是比较慢,后期通过调研使用KcpTun(想了解可以查看笔者博客[喵咪开源软件推荐(6)]TCP链路加速技术KcpTun)在需要访问的地方增加一个服务节点作为源站点,在通过KcpTun中转到国内文件服务器上(Kcp底层是UDP协议UDP协议不会被限制速度)通过测试可以直接达到最大速度,也不需要通过新加坡中转直接国内即可

3.文件分发3.0

主要思想 : 类DNS的文件分发网络

虽然文件分发2.0解决了回源的问题,但是也带来了另外一个问题就是流量费用高,CDN本来价格是很便宜的但是通过你本身的服务器中转流量费用一下子会多出很多来了,并且回源还是会依赖网络情况,那么笔者就在想有没有什么更加好更终极的解决方案,一次偶尔在和七牛云存储的同事讨论下得出了文件分发3.0解决方案

所有的前提要基于云文件系统(这里使用的是OSS)中的镜像模式简单来说就是文件服务器中没有文件,这个时候有个请求来访问发现找不到文件会先找到镜像的站点获取一下,如果获取到了就在返回的同时自己也存储一份(其实也就是类似CDN的功能),于CDN不同CDN只能全部到一个文件服务器,那么在CDN之前还有一个文件服务器的分发网络,所有的文件只要被海外访问过一次就会不停的在各个文件服务器上进行传递并且保存在文件服务器本身上,可以理解为CDN回源回到了CDN从CDN中获取了文件

这样一来海外文件相当于存储在了海外,回源到国内也只会存在一次回源永久使用

4 总结

技术是不停演进的,从早期的汇编到C语言到Java到Go语言,不停的迭代带来了新的体验优劣需要自己进行斟酌,如果大家有更多好的海外文件分发的方法欢迎来和喵咪一同沟通,最后多谢大家的支持!

注:笔者能力有限有说的不对的地方希望大家能够指出,也希望多多交流!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
notepad++ 插件推荐——快速定位文件
介绍Notepad++的文章很多,我这里就不赘述了。简言之,是一个轻便的文本编辑工具。结合丰富的插件,可以实现很多功能,可以成为一个轻量级的IDE,用来做脚本开发非常合适。 这里介绍几个插件可以用来进行文件定位。
1336 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
9938 0
Microsoft Excel 不能访问文件“ 文件名称或路径不存在。 • 文件正被其他程序使用。 • 您正要保存的工作簿与当前打开的工作簿同名。
Microsoft Office Excel 不能访问文件“D:\WWWRoot\KOBELCOSH\WebUI\ExcelTemplate\QUOTE5.xls”。 可能的原因有: 1 文件名称或路径不存在。
1794 0
企业跨网文件安全交换:分享三种解决方案
目前,政府机构,事业单位,高端制造、银行等大中型企业,根据国家安全保密管理要求,均已建立了多个网络环境,包括涉密网、非涉密网、生产网、测试网、互联网等。为了杜绝基于网络连接的信息和数据泄密事件的发生,通常使用网闸、DMZ区、双网云桌面等方式实现网络隔离。
1632 0
springboot 运行 jar 包读取外部配置文件
springboot 运行 jar 包读取外部配置文件
68 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13674 0
[喵咪海外部署]海外文件分发方案演进
在开阔海外市场遇到的第一个问题就是文件分发,因为初期文件肯定是存放到国内服务器上,给到海外访问速度及其缓慢笔者这边试下来欧洲只有20KB/s,一个300MB的文件要下载一天,因为这个问题就有了我们今天的主题海外文件分发方案演进,请紧张的往下看!
229 0
+关注
喵了个咪_
后端程序员,开源PHP框架PhalApi核心开发者,编写录制phalapi教程,phalcon爱好者编写phalcon教程以及zephir文档翻译,热爱交流沟通,喜欢go语言,欢迎大家一起交流沟通,探讨技术,座右铭:代码即真理,你的真理是什么呢?
166
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载