国人其实也有不少好项目,Dragonfly 正是其中之一,已经引起广大国外网友的注意了。
在阿里巴巴,蜻蜓每月被调用20亿次,并分发3.4PB数据。蜻蜓已成为阿里巴巴最重要的基础架构之一。
Dragonfly 的一些优点,使它今天登上了 Hacker News,并排在第 23 位。要知道国内很少有开源框架或开源产品能引起国外程序员的广泛关注!
Dragonfly 的优点有很多,简单列举几例。
- 基于P2P的文件分发:通过使用P2P技术进行文件传输,可以最大程度地利用每个对等方的带宽资源,从而提高下载效率,并节省了大量的IDC跨带宽,尤其是昂贵的跨板带宽。
- 对各种容器技术的无创支持:蜻蜓可以无缝地支持各种容器来分发图像。
- 主机级别速度限制:除了像许多其他下载工具(例如wget和curl)一样,当前下载任务的速度限制之外,Dragonfly还为整个主机提供速度限制。
- 被动CDN:CDN机制可以避免重复的远程下载。
- 高度一致性:即使用户不提供任何校验码(MD5),蜻蜓也可以确保所有下载的文件都是一致的。
- 磁盘保护和高效IO:预先检查磁盘空间,延迟同步,以最佳顺序写入文件块,隔离net-read / disk-write等。
- 高性能:SuperNode是完全闭环的,这意味着它不依赖任何数据库或分布式缓存,以极高的性能处理请求。
- 自动隔离异常:Dragonfly将自动隔离异常节点(对等或SuperNode)以提高下载稳定性。
- 文件源没有压力:通常,只有少数SuperNodes会从源文件下载文件。
- 支持标准的HTTP标头:支持通过HTTP标头提交身份验证信息。
- 有效的注册表授权并发控制:减轻注册表授权服务的压力。
- 简单易用:只需很少的配置。
- 蜻蜓是具有开放治理的CNCF项目
Dragonfly 相比较 wget 来说,性能有非常大的提升。
从图表中可以看到,对于 Dragonfly,无论有多少客户端下载,平均下载时间始终约为 12 秒。但是对于 wget,下载时间会随着客户端数量的增加而增加。当 wget客户端数量达到 1200 时,文件源崩溃,因此无法为任何客户端提供服务。
在下载常规文件和下载容器映像时,蜻蜓的工作方式略有不同。
下载常规文件
超级节点扮演CDN的角色,并调度每个对等点之间的块传输。dfget是P2P客户端,也称为“对等”。它主要用于下载和共享块。
下载容器映像
注册表类似于上面的文件服务器。dfget代理也称为dfdaemon,它拦截来自docker pull或docker push的HTTP请求,然后确定要使用dfget处理的请求。
下载块
每个文件都分为多个块,在同级之间传输。每个对等方都是P2P客户端。SuperNode将检查本地磁盘中是否存在相应的文件。否则,文件将从文件服务器下载到SuperNode中。
目前在使用 Dragonfly 的基本上都是一线互联网大厂!
对应 Dragonfly 来说,引起国外程序员的重视是非常好的事情,期待更多国内的开源产品走向世界。
对于很多没听说过 k8s 的人来说,不用过多关注 Dragonfly,因为很多人可能都接触不到!
: » 阿里巴巴开源的Dragonfly上了Hacker News
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/252945.html