Java基础、中级、高级、架构面试资料

阿里巴巴开源的Dragonfly上了Hacker News

业余杂谈 herman 2302浏览
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog2,发送下载链接帮助你免费下载!
本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云

国人其实也有不少好项目,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 vs wget

从图表中可以看到,对于 Dragonfly,无论有多少客户端下载,平均下载时间始终约为 12 秒。但是对于 wget,下载时间会随着客户端数量的增加而增加。当 wget客户端数量达到 1200 时,文件源崩溃,因此无法为任何客户端提供服务。

在下载常规文件和下载容器映像时,蜻蜓的工作方式略有不同。

下载常规文件

超级节点扮演CDN的角色,并调度每个对等点之间的块传输。dfget是P2P客户端,也称为“对等”。它主要用于下载和共享块。

Dragonfly 下载常规文件

下载容器映像

注册表类似于上面的文件服务器。dfget代理也称为dfdaemon,它拦截来自docker pull或docker push的HTTP请求,然后确定要使用dfget处理的请求。

Dragonfly
Dragonfly

下载块

每个文件都分为多个块,在同级之间传输。每个对等方都是P2P客户端。SuperNode将检查本地磁盘中是否存在相应的文件。否则,文件将从文件服务器下载到SuperNode中。

Dragonfly SuperNode

目前在使用 Dragonfly 的基本上都是一线互联网大厂!

Dragonfly 的使用者

对应 Dragonfly 来说,引起国外程序员的重视是非常好的事情,期待更多国内的开源产品走向世界。

对于很多没听说过 k8s 的人来说,不用过多关注 Dragonfly,因为很多人可能都接触不到!

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!

本文原文出处:业余草: » 阿里巴巴开源的Dragonfly上了Hacker News