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

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

在开阔海外市场遇到的第一个问题就是文件分发,因为初期文件肯定是存放到国内服务器上,给到海外访问速度及其缓慢笔者这边试下来欧洲只有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语言,不停的迭代带来了新的体验优劣需要自己进行斟酌,如果大家有更多好的海外文件分发的方法欢迎来和喵咪一同沟通,最后多谢大家的支持!

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏知识分享

1-物联网开发标配方案(预期方案使用说明和演示)

实现的功能:WIFI模块和手机APP连接MQTT服务器,单片机采集的温湿度数据通过WIFI远程发送给APP显示,APP远程控制单片机的LED亮灭

1923
来自专栏FreeBuf

如何使用PowerShell实现命令控制以及安全检查绕过

Windows操作系统在全球市场上的占比是大家有目共睹的,而现代Windows平台都默认安装了PowerShell,而且系统管理员还可以毫无限制地访问和使用Po...

2697
来自专栏java思维导图

一篇文章弄懂CDN技术原理

概述 Internet的高速发展,给人们的工作和生活带来了极大的便利,对Internet的服务品质和访问速度要求越来越高,虽然带宽不断增加,用户数量也在不断增加...

5813
来自专栏FreeBuf

Harpoon:OSINT威胁情报工具

Harpoon是一款自动化的用于从各种公开资源中收集威胁情报的工具。它是由Python 3编写的,并在其设计中体现了模块化思想,每个平台和任务都会有一个插件。大...

1983

32位 or 64位:Apache CloudStack系统VM架构选择

最近我和一些朋友讨论了一个关于CloudStack的问题:为什么现在CloudStack 4.3同时提供32位或64位系统虚拟机的选项。我提出了一个观点,并将其...

2186
来自专栏BeJavaGod

关于第三方cookie的作用域以及针对用户行为的使用

cookie,很多网站都会用的一个机制,可以保存用户的相关信息,token等等,很多人熟知的应该是第一方cookie,可以针对二级域名进行信息的保存,如果遇到跨...

3663
来自专栏编程

做好容错才能确保服务器的不间断运行

服务器容错 服务器运行时,如果出现故障服务器是否还能正常运转,且业务不会中断运行,这时候就会确认服务器容错如何?如果用户的网站、应用程序或网络系统没有适当的容错...

2408
来自专栏云计算D1net

混合云文件服务如何解决企业的文件问题

文件是现代组织的主要资产。混合云文件服务通过结合云计算和内部部署的文件系统的优势,将在全球范围内越来越多地用于管理和共享文件。

1570
来自专栏知道一点点

Angularjs快速入门(一)

angular也接触几个月,总觉得不甚明白,写起来总是不那么如意。希望这本书看完了可以改变现在的状况。好了废话不多说开始:

1192
来自专栏黄希彤的专栏

部署在腾讯云的公益网站遭受了一次 CC 攻击

攻击者借助代理服务器生成指向受害主机的合法请求,实现DDOS和伪装就叫:CC ( ChallengeCollapsar )。本文记录了面对黑客攻击的排查以及解决...

2.5K2

扫码关注云+社区

领取腾讯云代金券