阿里巴巴 Dragonfly(文件分发系统) 简介

JAVA herman 470浏览 0评论

Dragonfly 是阿里巴巴最新开源出来的一个分布式文件分发系统。官方目前还没有对应的中文介绍,我这里大概翻译了一下其英文简介,供大家参阅!

按照官方的说法,Dragonfly 是一个大型、高性能、企业级的基于P2P的文件分发系统。

介绍

Dragonfly,中文名译作:蜻蜓。蜻蜓(Dragonfly)是一个基于P2P的智能文件分发系统。解决了应用部署,大规模缓存文件分发,数据文件分发,图像分发等大规模文件分发场景中低效率,低成功率,浪费网络带宽等问题。在阿里巴巴,系统每月转移20亿次,分配3.4PB数据,成为阿里巴巴最重要的基础设施之一。可靠性高达99.9999%。

Dragonfly

DevOps从容器技术中获得很多好处,但同时它也带来了很多挑战:图像分发的效率,特别是当您有很多应用程序并需要同时分发图像时。Dragonfly与Docker和Pouch都非常合作,实际上我们可以兼容任何其他容器技术,而无需对容器引擎进行任何修改。

它提供高达本机码头吞吐量57倍的吞吐量,并节省高达99.5%的注册表带宽。

蜻蜓使设置,操作和缩放任何类型的文件/图像/数据分布变得简单且经济高效。

特征

该项目是蜻蜓的开源版本,更多的内部特征将逐渐打开

  • 基于P2P的文件分发:利用P2P技术进行文件传输,可以充分利用每个对等体的带宽资源来提高下载效率,节省了大量的跨IDC带宽,尤其是高成本的跨板带宽
  • 非侵入式支持各种容器技术:蜻蜓可无缝支持各种容器分发图像。
  • 主机级别速度限制:许多下载工具(wget / curl)只对当前下载任务有速率限制,但蜻蜓还为整个主机提供速率限制。
  • 被动CDN:CDN机制可以避免重复的远程下载。
  • 强一致性:即使用户不提供任何校验码(MD5),Dragonfly也可以保证所有下载的文件必须一致。
  • 磁盘保护和高效IO:预先检查磁盘空间,延迟同步,按最佳顺序写入文件块,拆分网络读取/磁盘写入等。
  • 高性能:集群管理器是完全闭环的,这意味着它不依赖于任何数据库或分布式缓存,以极高的性能处理请求。
  • 异常自动隔离:Dragonfly将自动隔离异常节点(对等或集群管理器)以提高下载稳定性。
  • 文件来源没有压力:一般来说,只要少数几个Cluster Managers从源文件下载文件即可。
  • 支持标准的http头:支持http头,通过http头提交认证信息。
  • 注册表验证的有效并发控制:降低注册表验证服务的压力。
  • 简单易用:极少需要配置。

与 wget 测试比对

测试环境  
蜻蜓服务器 2 *(24核64GB 2000Mb / s)
文件源服务器 2 *(24核64GB 2000Mb / s)
客户 4核8GB 200Mb / s
目标文件大小 200MB
执行日期 2016年4月20日

Dragonfly 性能测试结果

对于Dragonfly,无论有多少客户端下载文件,平均下载时间总是在12秒左右。而对于wget,当你拥有更多的客户端时,下载时间会不断增加,并且随着wget客户端数量达到1200,文件源将崩溃,然后无法为任何客户端提供服务。

Dragonfly 在各方面都领先目前市面上同类开源产品。开源不到1天时间,已经被 fork 200 多次了。阿里开源出来的产品还是值得信赖的!

喜欢的朋友可以关注我的博客,后面会推出相关的一些使用教程。Dragonfly 官网:https://alibaba.github.io/Dragonfly

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加QQ1群:135430763(2000人群已满),QQ2群:454796847,QQ3群:187424846。QQ群进群密码:xttblog,想加微信群的朋友,可以微信搜索:xmtxtt,备注:“xttblog”,添加助理微信拉你进群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作可添加助理微信进行沟通!

本文原文出处:业余草: » 阿里巴巴 Dragonfly(文件分发系统) 简介