callmefeifei 发表于 2018-4-17 21:28:19

关于视频流媒体中的CDN自建技术的比较

本帖最后由 callmefeifei 于 2018-9-26 23:25 编辑

CDN技术说白了就是反向代理+缓存+DNS自动分配的结合。
CDN专业术语太多,基本像咱们这种论坛就不需要专业术语太多的文章了。

国内的CDN厂商太多,质量参差不齐。国内要有CDN牌照和电信运营相关资质才能做。
某些低价虚拟主机就是用的CDN+垃圾机器,速度很快,但是说要跑一些程序,分分钟卡死。

比如江苏某虚拟主机厂商,河南某厂商的虚拟主机,我用过,跑织梦cms完全卡死。价格如果没有代理贼高,如果有代理跟免费一样。

我有个客户做在线教育的,每月流量也就40多T,基本都是在线课堂那种,我最早是给他做视频转码功能的,没想到后面做CDN去了。
正规国内小企业。国内编程造轮子培训班,给毕业大学生包装的。但是比某鸟培训的不是那么黑。

最早的方案是七牛、每月的欠费单子记忆忧心啊。由于成本原因,服务器是阿里云的云服务器,转码速度很慢的。在视频优化上我也是下了功夫的,都说H265编码方案不错,我试了确实比H264好,压缩的文件比264小一点,节省流量。但是问题就是某些手机、某些浏览器不支持。google浏览器都不支持,没办法,只能用264技术压缩。

说下国内的CDN厂商,如果没有转码系统,要对接七牛有两个费用一个视频处理费、一个存储空间费用,不划算分分钟亏本。
40T在七牛下面的价格在 9600元,而且还有其他的杂费,每月过万,小企业完全不划算。

这个老板就跟我商量研究,自建CDN吧。
自建CDN 首选要自建DNS,因为DNS要做自动分配,你是按机器负载分配、还是线路分配、或者是地区ip分配都有说法。
DNSPOD 免费只能2个,交钱了也只能6-8个节点。
Dnsx 20个,这个一般来说就足够了。

其实有个结合视频的调度中心程序是最好的,直接减少DNS解析的过程,自动分配。用到的开源程序:zookeeper 进行调度分配
DNS也是基于bind开发的,无界面的,Redis,因为自己节点也没有多少。

最初用的nginx进行反向代理+缓存,效果很一般,但是命中率还可以。
第二次换了 Squid,Squid的命中率居然没有最新版的nginx好,于是就尝试用ATS。
综合比较结论就是 ATS 》 nginx 》 Squid 。ATS的官方文档全是英语,网上资料也很少,设置比较麻烦。

Nginx足够应对一般视频站了

=服务器

一共买了40多台服务器,全都是做尝试用的。
到国内稳定的就是 鲨鱼、raksmart
但是鲨鱼在长时间流量高的情况下会限速。很坑但是线路很好,国内速度快。raksmart 只有电信方面好一点

对,说一个坑,买了一个某F*C国外的 10G宽带 美国服务器才 1000多元,结果真t m的坑,国内跑的40m不到。
国外的可以买,到日本 韩国速度还可以。

然后就是联通和移动了。
广电据工作人员说是租用的移动线路,铁通就不知道了。
移动线路:OVH机房
联通:美国的一家不出名的,名字很长,忘记了。如果大家有联通的好线路给我们分享下哈。
-

最终结果就是:zookeeper + ATS/NGINX + 自建DNS = 低成本。
机器做局域网,局域网都是G口免费的,在某些节点不足的时候可以互补。

避免 源服务器上进行转码和切片。
源服务器一般SAS硬盘足够、CPUE3Vx即可。转码的稍微好一点,跟源纯内网,外网宽带2m都可以。转码直接通过局域网分发到源上,源服务器的成本就下来了。

1G宽带 才1900多,不计费。别拿一些几百的 一千多的美国G口来比,到国内根本跑不到100m。我是买了很多了,全烂手里了。

买IBM的CDN也可以,IBM机器贵,但是CDN单价还是可以的,速度很稳很快,技术也比我这个成熟,但是就是稍微贵点。
买IBM的服务器要注意不要买内网口的,太坑。

大家有好的经验 多多共享下,参考一些大家的经验,学习下。

主要还是硬盘。硬盘要共享起来搞。不然缓存太大了,搞不动。

----- 9-27日更新 ----
BBR加速软件可以安装,效果很好。其他的也可以。
Google 对Flash安全限制很高,还是建议大家用 VideoJS、Dplayer之类的播放器

P2P技术参考:https://webtorrent.io/

ATS的效果在某些情况下不如Nginx
如果是大量,超过10T的,建议从硬件、BDNLVS、七层负载模式着手,能二次开发Nginx的 尽量二次开发
网上P2P加速的,我看了好多种WebRTC的原理都没弄懂就开发了,效率很差的,ts这种的在一定情况下不用最好,mp4的效果是可以的。

转变模式:
第一版:Nginx + lua (Nginx瓶颈严重)
第二版:ATS + Zookeeper + Nginx (性能浪费严重)
第三版:SIPCDN(线程池,比上一版还差)
第四版:SIPCDN (NIO)、Tomcat(控制端)、BDNLVS模式(MVC模式引用到WebServer容器) 目前感觉最好

callmefeifei 发表于 2018-4-18 00:50:09


static/image/smiley/default/lol.gif

oskey 发表于 2018-4-18 05:05:56

美国G口跑满一个月能跑330T吧

callmefeifei 发表于 2018-4-18 11:43:45


oskey 发表于 2018-4-18 05:05

美国G口跑满一个月能跑330T吧
测试了一个视频站,260多T。业务跑不满

oskey 发表于 2018-4-18 05:05:00


callmefeifei 发表于 2018-4-18 11:43

测试了一个视频站,260多T。业务跑不满
可能瓶颈在你的磁盘上

callmefeifei 发表于 2018-4-19 01:01:44


oskey 发表于 2018-4-19 01:01

可能瓶颈在你的磁盘上
200 ssd * 52g/s

88170351 发表于 2018-4-18 11:43:00

zookeeper + ATS/NGINX + 自建DNS = 低成本
给我指引啦, 哈哈

zaiwuaa 发表于 2018-4-19 10:58:50

谢谢楼主的一番话
页: [1]
查看完整版本: 关于视频流媒体中的CDN自建技术的比较