專訪迅雷首席工程師:迅雷的下一代互聯網底層技術構想

摘要:互聯網合縱連橫頻頻上演,迅雷與小米的聯姻也成為了熱點,有許多人為迅雷的上市和迅雷的未來擔憂,這家像工程師一樣的公司,命運會怎樣,他們未來會如何走下去?對此CSDN專訪了迅雷首席工程師劉智聰。

劉智聰,迅雷首席工程師,1984年出生,從小自學編程,畢業于南昌大學化學系,加入迅雷后設計開發了多款迅雷核心產品,是多個領域的技術專家,也是BOLT 界面引擎的發明人。下面是對他的專訪全文,內容涵蓋迅雷現在和未來的技術方向,以及劉智聰本人對未來技術的看法:


行業里最好的P2P團隊和客戶端團隊

CSDN:能否先給大家介紹一下迅雷技術團隊構成?

劉:迅雷的技術團隊結構更趨向于扁平化而非樹形。目前技術團隊分為兩大部分,一部分是事業部,這和傳統互聯網公司基本一致,每個產品都會一個技術團隊。另一部分是有迅雷特色的基礎技術研發,負責推動迅雷的技術發展和創新,這部分人在迅雷的時間長,級別高,但基本都不需從事管理工作。?

CSDN:能否說說迅雷的特色團隊?

劉: 迅雷有頂尖的P2P團隊。P2P本來就是一個很少有公司涉足的領域,有機會做到上億節點的網絡公司更少,許多人討論過的問題,我們的團隊都見過。

我也有很強的分布式存儲團隊。現在行業講的很多的云存儲,其實迅雷很早以前就在做,當時不叫云,叫分布式存儲,它最開始得益于Google那篇著名的GFS論文,但后來發現Google那套東西不完全適合迅雷,迅雷業務重流量,所以我們進行了很大的調整并在此基礎上進行發展和創新,成為現在迅雷離線下載后臺的核心技術。

另外,迅雷有整個行業里最好的客戶端團隊。當然這點沒有什么值得驕傲的,因為迅雷本身就是一家做客戶端起家的公司。行業里做客戶端最出名的也就三家,分別是迅雷、騰訊和360,360是2008年左右才發展起來的。因為圈子比較小,相關團隊后面都有過交流,其實使用的技術與大家能通過網絡學到的東西差別很大。而迅雷是這3家里總結并升華得最好的,咱們有不少獨門秘笈。不過由于現在Windows客戶端開發不再是熱點領域了,缺少新鮮血液,這個行業積累的技術其實很難傳承下去。

迅雷是一家技術驅動的公司

CSDN:能否說說迅雷的技術文化?

劉:迅雷的技術文化就是典型的工程師文化,追求技術創新。剛剛提到的技術研發團隊基本上代表了迅雷的技術文化。每個公司都有自己的風格,有些公司是產品創新型公司,比如騰訊,做微創新做得很好,這絕對是一種強大的能力,還有些是數據驅動型公司,而迅雷則是一家典型的技術推動型公司,我們真正做成的產品背后都是靠技術創新在驅動,這種性質導致迅雷必須堅持在基礎技術創新上做投入。

另外,迅雷不論前端后端,各個部門都在用同一套框架,比如客戶端使用 BOLT引擎。內部統一框架的好處非常大,有什么Bug都能很快向得到響應,可以說能做到這點的國內公司非常少。很多程序員,他們寫代碼總覺得別人的爛,自己的好,但是在我們這里,如果使用同一套框架,出了問題大家先不說代碼的好壞,而是先解決問題。我們創始人是工程師出身,他自己非常推崇這一點。

CSDN:在你看來,迅雷最核心的技術是什么?

劉:P2P,迅雷一直致力于讓整個網絡更有效率。舉個簡單的例子我們一直在研究P2P上傳的數據是什么?我們常說,百度是最理解二進制文本文件的公司,那么迅雷算是行業里最理解二進制的一家公司。迅雷有很先進的P2P內容識別技術,不過迅雷的技術會一不小心踩到所謂的灰色地帶,這種事已經發生過很多次,有時候做了一個很好的產品無法上線,吃一塹長一智,久而久之,迅雷的研發團隊個個都成了法務專家。

CSDN:迅雷有什么產品是因為法律問題而無法存活的?

劉:最著名的就是狗狗搜索。迅雷在2007年的時候是下載領域的老大,徹底擊敗了BT。我們2007年做了幾件事情,一是推出迅雷看看,那時候迅雷是國內唯一一家能提供高清在線視頻播放的公司,播放后面的技術就是P2P。二是推出狗狗搜索,你可以在上面找資源,當時狗狗搜索的量非常大,基本上達到了百度的三分之一,但因為存在法務上的風險最終放棄了。所以現在大家都注重技術和產品的法律前瞻意識。

迅雷的現在:分離資源尋找與資源下載

CSDN:在大家的印象中,迅雷就是下載的代名詞,但互聯網變化風云莫測,而且迅雷已經稱霸下載市場多年,迅雷下載未來會怎么發展??

劉:我們今天的一個想法是你可以在任何一個地方去找資源,除了搜索之外,還可以有朋友之間的分享。但用戶肯定不會隨身攜帶電腦,而且用戶一般不會在手機上下載資源。所以迅雷就想將兩者分離,用手機找資源,然后遙控其他終端進行下載,下載端可以是電腦、電視,或者路由器,最適合的是路由器,因為你不可能一直開著電腦或者電視,但是大多數人的家中,路由器是不會關閉的,可以在任何時候遙控下載。這樣回到家后想要的資源已經下載完成了。

迅雷的未來:建立下一代P2P網絡?

CSDN:上面說的都是最近事情,很多人感興趣,迅雷未來會做什么?

劉:迅雷的未來想做這么一件事情:提高整個網絡數據傳輸的效率,通俗了講就是泛加速。迅雷下載實際上是一種比較特殊的數據傳輸行為,頻度不高,但數據傳輸在網路里每時每刻都在發生,包括瀏覽網頁,看視頻、看圖片、玩游戲等等都無需下載的操作。做泛加速的目的,不希望僅僅把加速局限于下載,而是擴展到數據傳輸。?

CSDN:如何做到

劉:這就需要考慮網絡的核心問題,你可以把中國的互聯網想象成公路網,如何提高運輸效率?有一個公式是D*L,D就是數據,你沒法減少網絡對數據的需求總量,網絡負載就只有這么大。提高效率的重任就落在了L上,L過去是從原始服務器到用戶終端的距離,如果縮短了L就可以提高效率了。

如何縮短?這個可以跟物流公司學,有一句話叫“物流不流”,比如在深圳買北京的東西,如果在廣州倉庫有一模一樣的貨,那么它會從廣州直接發貨而不是從北京,這就叫物流不流。但P2P數據傳輸有個問題,它在傳輸過程中,只有兩端知道傳輸的是什么數據,中間的節點不知道。

迅雷要做的事情就是通過對數據貼標簽的方法來識別“一模一樣的貨物”,再通過在建數據緩存節點的方法來讓數據離用戶更近,而在路由節點上建緩存的過程其實是將TCP/IP網絡改造變成一個有Cache的網絡。為了要提高Cache的命中率,我們會預測數據是不是非常熱門,如果是,那么就更容易被緩存。

改進網絡效率的另一個方法是更好的調整整個網絡的路由。最近相當流行的SDN技術解決的還是機房內的問題,但如果我們把SDN的思想運用到全網,這就像是支持路況信息的導航路線規劃。我們要做的就是,在網絡繁忙的時候能夠讓一些數據的中轉,就是路由器的轉發表,不再去往主干光纖轉,而是往一些可能平時比較偏門,大家覺得不愿意走的小路上去。

而通過軟路由,我們能做一個覆蓋一、兩億結點的SDN網絡來。要做這件事情,并能夠時時分析出一些東西來,需要非常好的大數據處理能力,所以我們也開始在這一塊加大投入,支撐智能選路。

第三個就是,希望SDN網絡除了能做到分流之外,還能修改網絡的物理拓撲,現在的情況是,有線路由器的拓撲結構必須要拔線才能改變,比如說AB兩個路由連著C,然后C連D,D再連著E和F,它是一個蝴蝶型的結構,在有線情況下,是沒有辦法通過軟件去修改的,你只有通過拔線,但是未來我們要動態的去修改這條路的關系,比如說這兩個路本來是相交的,我們把它改成平行,能不能做到這一點?這個可能我們不但要自己做這方面的技術研究,而且我們還需要跟硬件廠商在一起,做一個開放的標準,比如所有的無線路由器,都需要支持我們一個這樣的軟件控制接口,能夠去修改它的連接方式。

CSDN:現在這份工作進展到哪一步了?

劉:面向系統的第一個目標及第二個目標的最主要的相關協議和規則我們已經在設計了,不是什么特別復雜的東西。在迅雷驗證這些技術靠譜后我們希望把它公開出來,大家共同建立這個網絡。時間上希望這套方案能在2014年完成技術驗證,畢竟迅雷已經為互聯網上20%左右的數據貼好了標簽。

CSDN:有人說迅雷在移動互聯網轉身太慢,你怎么看?

劉:每家公司都有自己的基因,迅雷在移動互聯網發力并不晚,我們在塞班時代就已經開始做手雷了,但現在一直不溫不火,主要還是下載在移動互聯網上確實不算是一個主流的事情。但是一家公司的基因不是說改就改了,我們不會去做社交,或者電子商務, 我們一直在找公司的基因與移動互聯網的結合點,并會堅持下去。

希望BOLT未來能與HTML5抗衡

CSDN:能否說說BOLT引擎?它如何與你們現在所做的東西結合?

劉: 我現在的愿望是BOLT能取代HTML5,其實BOLT跨平臺的方案比HTML5更徹底,性能更好,但它不是關系迅雷生死存亡的東西,目前在這上面投入精力比較少。BOLT這個東西,解決的問題涉及面太廣了,未來還有更廣泛的應用,它的舞臺會更大,影響會超過中國的范圍。我希望在解決了迅雷的核心問題之后再回到BOLT這件事情上來。目前這個系統還處于早期階段,要像HTML5一樣過渡到行業標準,必然要解決開源、標準化、工具支持等等一系列問題。現在使用BOLT的開發者,在國內公司大概有170多家,獨立開發者也有一些,加起來大概有三四百來人。

只有具有強烈愛好的人才能真正做一些很難的事情

CSDN:你給人的感覺簡單直爽,迅雷在招聘上喜歡哪種人才?不喜歡哪種人才?

劉:人一定要有獨立判斷能力,國內不論普通人還是一些大佬,跟風都特別嚴重,如果出現什么新的技術,他們的第一反應就是抱發明者大腿,抱大腿有一個好處,如果這項技術起來了,你會成為行業里的第一批專家,可以壟斷一些話語權、出書。國內有很多高手去干這件事情,對此我非常傷心。

他們缺少獨立的判斷能力,大家說HTML5好的時候,我偶爾在技術群里說一兩句類似HTML5解決有些問題的方式非常爛,它的包袱太重,以至于沒有辦法達到更好的性能和輕量化的時候,會被板磚砸死。前段時間Google出了一種GO語言,這個東西別的不說在語法上太丑了,完全不能接受這么丑陋的東西,我偶爾表達一下意思也被一堆人罵老古董。

我喜歡具有獨立判斷能力的人,絕不是為了反對而反對,我希望的獨立判斷能力是,你判斷的背后是你的價值觀和原則,你有你自己的標準。比如說HTML5不好,但不能全部否決,它也有好的部分,里邊的CSS我就很喜歡,在我的引擎里,中后期也開始引入類似的東西,但更加單純一些。

其次要有激情,有自己的愛好。很多碩士面試的時候半天說不出自己有什么愛好,這是個非常嚴重的問題。我一直相信只有強烈的愛好才能推動你去做一些非常難的事情,你才能真正看到一些背后別人看不到的東西,可能因為應試教育,許多中國人缺少這一點。

最后一點就是與天賦有關了,這個可遇不可求,你要有洞察能力,有一眼看穿本質的能力,如果有這種人,恨不得立馬拉進團隊。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/449310.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/449310.shtml
英文地址,請注明出處:http://en.pswp.cn/news/449310.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

YASnippet - emacs 的代碼片段管理工具

添加 snippet M-x 然后輸入 yas-new-snippet 回車 RET&#xff0c;會出現一個新的 buffer # -*- mode: snippet -*-# name: # key: # --在出現的 buffer 中填寫相應的數據 # -*- mode: snippet -*-# name: vard# key: vard# --echo <pre>;var_dump($0);die;c-x c…

深入vuex原理(上)

前言 vuex作為vue生態的重要組成部分&#xff0c;是對store進行管理的一柄利劍。簡而言之&#xff0c;vuex是vue的狀態管理器。使用vuex可用使數據流變得清晰、可追蹤、可預測&#xff0c;更可以簡單的實現 類似時光穿梭 等高級功能&#xff0c;對于復雜的大型應用來講&#xf…

Maven入門(含實例教程)

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 Maven這個個項目管理和構建自動化工具&#xff0c;越來越多的開發人員使用它來管理項目中的jar包。接下來小寶鴿&#xff0c;將從下面幾個…

進階正則表達式

本文同步自我的博客園&#xff1a;http://www.cnblogs.com/hustskyking/ 關于正則表達式&#xff0c;網上可以搜到一大片文章&#xff0c;我之前也搜集了一些資料&#xff0c;并做了排版整理&#xff0c;可以看這篇文章http://www.cnblogs.com/hustskyking/archive/2013/06/04/…

tkinter攔截關閉事件

import tkinter as tk from tkinter import messageboxroot tk.Tk()def on_closing():if messagebox.askokcancel("Quit", "Do you want to quit?"):root.destroy()root.protocol("WM_DELETE_WINDOW", on_closing) root.mainloop() 轉載于:htt…

阿里云服務器一分價錢一分貨,切記!

阿里云為了滿足低端市場的需求&#xff0c;會推出一些價格非常便宜的機器&#xff0c;但是這些機器是為新手練手用或者做測試用的&#xff0c;性能不行。你不要指望花每月9.5元&#xff0c;買一臺學生機&#xff0c;就可以放置流量大的網站還不卡&#xff0c;那個不現實。阿里云…

請記住:你的付出都會以該有的方式歸來(圖)

人&#xff0c;這一生就像一個耕種的農民。你不是在付出&#xff0c;就是在收獲。當然&#xff0c;有人說&#xff0c;付出并不一定有回報。這是大多數人都認同的&#xff0c;也就是付出與得到不一定成正比&#xff0c;不是付出的越多就得到的越多。但我想告訴你的是&#xff0…

c++primer plus筆記

> 第六版 操作符重載 #include<iostream> using namespace std;class Time { public:Time(){hm0;}Time(int _h,int _m){h _h;m _m;}void show(){printf("%02d:%02d \n",h,m);}Time operator(const Time &t){Time result;result.m t.m m;result.h t…

Luogu P3975 [TJOI2015]弦論

題目鏈接 \(Click\) \(Here\) 題目大意&#xff1a; 重復子串不算的第\(k\)大子串重復子串計入的第\(k\)大子串寫法&#xff1a;后綴自動機。 和\(OI\) \(Wiki\)上介紹的寫法不太一樣&#xff0c;因為要同時解決兩個問題。 把字符串每個前綴所在等價類的\(siz\)記為\(1\)&#…

《 圖解 HTTP 》讀書筆記

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. TCP/IP 協議族按層次分為&#xff1a;應用層、傳輸層、網絡層、數據鏈路層。 2. IP 協議的作用是把各種數據包傳送給對方。 3. IP …

身體出現危險時會發出信號 這太重要了 一定收藏 !(組圖)

太重要了&#xff01;真的太重要了&#xff01; 心臟有問題時———左邊手臂會酸、麻、痛。 肝臟有問題時———小腿晚上睡覺時容易抽筋。 腎臟出現問題時———聲音就會出不來&#xff0c;就會沙啞。 脾胃出現問題時———偏頭痛。 任何試圖更改生物鐘的行為&#xff0c;都將給…

數據結構與算法-概念

計算機從解決數值計算問題到解決生活中的問題 現實生活中的問題涉及不同個體間的復雜聯系 需要在計算機程序中描述生活中個體間的聯系數據結構主要研究非數值計算程序問題中的操作對象以及它們之間的關系而不是研究復雜的算法 數據結構 基本概念 數據&#xff1a;程序的操作對象…

騰訊聯手聯通推出車聯網“網卡”,打“內容”+“流量”的組合拳

車載生態已經成為了一個兵家必爭之地了&#xff0c;于商業前景而言&#xff0c;這是一個BAT都無法忽視的掘金勝地。 從市場數據來看&#xff0c;全球車聯網市場年復合增長率達到25%&#xff0c;根據汽車之家大數據顯示&#xff1a;自2014年以來&#xff0c;車聯網上市新車型滲…

編程面試中的十個常見錯誤

本文由 伯樂在線 - darkinlight 翻譯自 thegeekstuff。歡迎加入技術翻譯小組。轉載請參見文章末尾處的要求。 身為程序員&#xff0c;你肯定知道和其他技術工作面試比起來&#xff0c;編程工作的面試流程略有不同。 這篇文章會就你在編程面試中應當避免的10個問題展開討…

費曼技巧與博客

費曼技巧與博客 什么是費曼技巧&#xff1f; 費曼技巧是一種學習方法&#xff0c;核心是以教促學。 具體實踐 以學習費曼技巧為例&#xff1a; 確定學習目標為學習費曼技巧。尋找資料&#xff08;網絡、書籍、報刊等&#xff09;學習費曼技巧&#xff0c;直到自己認為已經理解了…

阿里云服務器 CentOS 7上-- Docker 安裝 網關(API-Getway)--KONG

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 全程操作按官方文檔來就可以了。 1.將 Kong 連接到 Cassandra 或 PostgreSQL 容器 Kong支持 2 種數據庫&#xff1a;Cassandra 或 Post…

每個程序員都應該了解的內存知識

英文原文&#xff1a;lwn.net&#xff0c;翻譯&#xff1a;開源中國 [編輯的話: Ulrich Drepper最近問我們&#xff0c;是不是有興趣發表一篇他寫的內存方面的長文。我們不用看太多就已經知道&#xff0c;LWN的讀者們會喜歡這篇文章的。內存的使用常常是軟件性能的決定性因子&…

山區建小學

題目描述 政府在某山區修建了一條道路&#xff0c;恰好穿越總共nn個村莊的每個村莊一次&#xff0c;沒有回路或交叉&#xff0c;任意兩個村莊只能通過這條路來往。已知任意兩個相鄰的村莊之間的距離為d_idi?&#xff08;為正整數&#xff09;&#xff0c;其中&#xff0c;0<…

idea debugger console 不見了--還原 console 圖標

1 找了好久&#xff0c;也找不到&#xff0c;調試的時候挺麻煩的。 2 最后發現 有個一個重置&#xff0c;視圖的按鈕。點擊一下就恢復 。 如下圖。轉自&#xff1a;https://blog.csdn.net/changdejie/article/details/64127026

實驗五:任意輸入10個int類型數據,排序輸出,再找出素數

import java.util.Scanner; public class Pxsushu {public static void main(String[] args) {// TODO Auto-generated method stubScanner s new Scanner(System.in);int temp;//對數組事先聲明并創建10個空間int[] a new int[10];//把輸入的數存儲為數組for (int i 0; i &…