1. 程式人生 > >proxyee down源碼分析

proxyee down源碼分析

art ref tps net org bootstra lec 路徑 core

proxyee down下載速度不錯, 底層使用netty+多線程,最近在看netty網絡方面的應用,正好這是個案例

源代碼地址 https://github.com/proxyee-down-org/proxyee-down

基本原理

前端選擇下載url 及文件保存路徑
後端嘗試使用http多段下載(range)
如果支持多段下載,則開啟多線程平分此文件,每個線程負責部分range範圍,並最終寫入到同一個文件

代碼分析

org.pdown.core.boot.HttpDownBootstrap#start(boolean)  




1. 構造多段下載起始、結束位置
org.pdown.core.boot.HttpDownBootstrap#buildChunkInfoList

2. for循環發起多段連接
org.pdown.core.boot.HttpDownBootstrap#connect

3.每個連接一個響應回調對象 :寫入文件
org.pdown.core.boot.HttpDownBootstrap.HttpDownInitializer pipeline

(分析下多線程寫同一個文件的過程fileChannel)

proxyee down源碼分析