close
專訪曾憲傑:大型網站系統與Java中間件實踐

摘要:淘寶近10年來歷次技術飛躍的參與者、貢獻者和帶領者曾憲傑做客瞭CSDN社區問答欄目,擔任第四期的嘉賓,帶您瞭解大型網站系統與Java中間件的實踐。在活動開始之前,我們采訪到瞭曾老師,一窺他的技術和人生。

編者按:淘寶技術部總監、淘寶技術委員會Java分會會長曾憲傑將攜他的新書《大型網站系統與Java中間件實踐》做客我們社區問答欄目,擔任第四期的問答嘉賓,屆時會接受廣大網友的提問,歡迎各位網友前來與淘寶網中間件大牛曾憲傑一起碰撞思想的火花。以下為采訪正文:


台中靜電油煙處理機租賃



淘寶技術部總監曾憲傑,他是淘寶近10年來歷次技術飛躍的參與者、貢獻者和帶領者。


油煙處理機出租

曾憲傑,淘寶花名華黎,現任淘寶技術部總監,淘寶技術委員會JAVA分會會長。2002年畢業於浙江大學計算機系。先後在中科院下屬企業、先鋒電子(中國)等企業就職,是一個桌面管理系統的軟件公司的聯合創始人並負責總體技術工作。參與過郵政省級地市集中化生產作業系統的設計開發以及大型企業內部桌面管理安全系統的設計和開發。

2007年6月加入淘寶網平臺架構團隊,負責構建淘寶自主的消息中間件系統,同期主導瞭淘寶數據層的創建,這兩個產品也是淘寶中間件中較為重要的兩個。2010年下半年起開始負責整個淘寶中間件團隊,幫助團隊成為業內知名的Java技術團隊。2012年開始從中間件走向應用系統的研發工作,2013年初負責新組建的淘寶技術部。熟悉C++和Java,在多線程、並發、網絡通信及支撐大型網站的中間件領域有較多經驗,對新技術有濃厚的興趣。致力於帶領團隊在無線、數據、業務平臺和組件化開發方面取得突破。

他也是《OSGi原理與最佳實踐》一書的作者之一和《大型網站系統與Java中間件實踐》的作者。



CSDN:請和大傢介紹下你及目前所從事的工作。

曾憲傑:目前主要職責是負責淘寶技術部,在技術和管理上都會投入精力。主要的工作會看技術的發展以及新的技術如何應用在淘寶,這裡包括瞭工程和算法相關的,此外無線也是我們重點關註的部分。然後會和團隊一起完成技術部的規劃以及幫助團隊落地,此外是一些管理上的工作。之前負責的中間件團隊,在13年4月份的時候,交給瞭其他Leader負責。

CSDN:能否具體介紹下淘寶網應用架構的變化歷程以及架構中的自主研發部分?

曾憲傑:我是07年6月加入淘寶,當時淘寶已經是一個日成交超過1億元的網站。網站從03年開始基本是一個LAMP架構,後面把應用從PHP遷移到瞭Java,數據庫從Mysql遷移到瞭Oracle,在07年的時候,基本是一個集中式的應用,除瞭使用Oracle外,也有自研的搜索、緩存、分佈式文件系統等基礎設施。

而07年開始,主要的改造工作是圍繞著應用和DB的擴展性做的,在應用方面,我們引入瞭服務框架,解決瞭應用服務化的問題;引入瞭消息中間件,完成瞭應用的解耦;引入瞭分佈式數據層並且完成瞭數據變更通知以及數據遷移的系統,數據庫也從Oracle換成瞭Mysql,完成瞭底層的數據庫的伸縮性改造,通過這樣的改造,使得我們的集中式的網站變成瞭一個大型的分佈式系統,並且在一定程度內,在應用和數據庫層面都是可以做到水平擴展的,這為業務的飛速發展以及應對高峰流量奠定瞭重要的基礎。

上述過程中我提到的服務框架、消息中間件、分佈式數據層以及支撐這三個重要系統的軟負載中心、集中配置管理中心都是自研的。

CSDN:一個大型的高並發高性能網站架構需要從哪些層面去考慮?技術堆棧的選擇又應該註意什麼?

曾憲傑:對於大型的高並發高性能網站的架構,我覺得主要考慮的方面包括水平擴展性、穩定性、架構相關基礎設施的易用性、容錯性、異地數據中心支持等方面。

而技術方面的選擇,如果不考慮現有技術人員的情況,那麼建議選擇的是有成功案例並且社區比較活躍的技術。

CSDN:其中存在的挑戰是什麼,架構和實現時需要避免哪些坑?

曾憲傑:細節是魔鬼,一些架構從比較抽象的角度去看,可能比較簡單,但是很大的挑戰就是細節,這些細節有具體產品實現的細節,也有和業務相關的需求細節。

從我們的經驗,從一個功能的構思到最終完全做好,會遇到很多的問題,另外一個方面是一致性,一致性尤其是強一致性的保障是非常具有挑戰的事情,再有一個是完全的自動化,這個部分也很困難,一不留神就容易產生雪崩或者不一致等嚴重的問題,具體需要避免哪些坑,這個在不同的產品上會不一樣。

總體來說,在實現中花掉絕大部分時間是用於思考和解決哪些很異常的情況下的實現。

CSDN:關於高負載網站打造有什麼建議?

曾憲傑:現在對於很多架構師和工程師來說,水平擴展是大傢都特別註意的問題,我的建議是大傢也要去重視垂直的擴展,去提升單點的能力在分佈式系統中其實是很重要的;另外,我個人認為,去引入前面提到的那些組件並不算很困難,但是在這之外,我們如何能很好的評估系統的真實能力、瞭解當前線上峰值的壓力、管理好我們應用之間的依賴,以及做好系統降級的工作是很重要的,此外,就是如何做到異地多數據中心。

CSDN:你在分佈式數據庫中間件這方面有很深的造詣,能否分享一下你們的數據庫中間件?與同類數據庫中間件相比,它具有哪些特性?解決瞭哪些技術難點?

曾憲傑:這個隻是有一定的瞭解和經驗,不能說造詣很深。就我自己的看法,很多數據庫中間件主要解決的是數據庫請求的SQL解析和路由的工作,這個在淘寶來說,當然也完成瞭相關實現。而不太一樣的是淘寶的數據訪問層,解決瞭非對稱的數據庫的數據復制,這個具體指的是源數據和目標數據庫系統不是同樣數據庫並且數據並不是鏡像復制的需求,此外,我們的數據層不僅僅解決數據訪問問題,也完成瞭數據庫的平滑擴容和縮容處理。在使用方式上,集成在應用中的組件和獨立部署的代理兩種方式並存,而在數據源的實現上,也提供瞭三層的可選方式。

非常具體的內容,我是把自己的經驗都寫到瞭《大型網站系統與Java中間件實踐》一書的章節中瞭。

CSDN:是否可以分享一下淘寶網在開源方面的使用情況和貢獻?

曾憲傑:淘寶網對待開源是積極和開放的,我們自己用到瞭很多的開源軟件,小到一些組件,大到像Hadoop等一些系統。在使用開源的同時,我們會把自己對開源系統的修改以及完成Bugfix反饋給社區,來幫助開源軟件的完善和發展,此外我們也把一些自研的系統進行瞭開源,給到那些需要使用的技術人員,並且也從使用者那裡得到瞭很多的幫助,不論是提出的問題還是提交的一些代碼,都給我們自身的軟件發展帶來瞭幫助。

CSD桃園靜電機租賃N:機構在選擇和使用開源技術時,你有什麼建議?

曾憲傑:我個人覺得需要考慮這幾個方面:


該開源軟件是否是遵守該領域內的國際規范的

在同類產品中,要挑選有比較優勢的。並且要考慮可能存在的移植代價。這個移植指的是采用瞭這款開源軟件後現有系統的移植,或者是從這個開源軟件到其他軟件的移植。


曾憲傑:現在關註的技術不是特別的聚焦,工程和算法的都比較有興趣。近期相對更加關註的是無線相關的技術以及在目前多端情況下的後端架構改進的相關的內容。

對於新技術的學習,對我來說首先還是去瞭解這個新技術本身希望解決的問題跟某些現有技術的相關度,新的技術很多,對我來說重點去看的是對我們現在有幫助的,所以我首先要瞭解新技術到底能幹什麼,跟我們很相關就會投入比較多經歷,否則就是先瞭解下這個技術能幹什麼,自己有個印象。另外,去尋找這個新技術和自己現有知識體系的關聯是比較重要的,這會讓你能更快的學習並且更深的理解,此外,動手做些實踐很重要,不過我個人跟之前比,這個部分做的少瞭很多。

CSDN:如今,你在技術管理者和程序員/技術人員兩個身份之間是如何協調的?

曾憲傑:對我來說,首先是調整好自己的心態,讓自己能夠從內心把角色轉變過來。因為現在負責的團隊比較大,大概三百多個人,所以我首先會考慮自己作為一個管理者應該做什麼事情。就我自己感覺,帶這麼大的團隊的壓力遠遠大於自己做技術,因為作為一個技術人員,自己沒有做好,一些事情沒看清楚,受到影響的主要是自己,而帶領團隊,自己會影響到整個團隊,這個責任很大。

而這兩個角色,我自己的感受是,作為原來一線技術人員需要去摳的細節和一些動手實踐,我放到瞭自己的業餘時間,因為我確實是對技術本身非常有興趣的一個人,業餘也沒什麼愛好,除瞭陪傢人孩子也就是加班瞭。而工作中,其實還是有比較多的時間是花在技術上的,去瞭解學習新的技術,去參與團隊中比較重要的技術方案,而花在管理上的時間,在技術團隊並不需要特別的多。

友情提醒:曾憲傑老師從今天開始,坐鎮CSDN社區問答第四期,為大傢解答關於中間件的學習、認識、開發等方面的問題。期間,曾憲傑還會就其最新力作《大型網站系統與Java中間件實踐》一書為您答疑解惑,帶您瞭解大型網站系統與Java中間件的實踐。

參與活動請點擊【社區問答第四期:曾憲傑——大型網站系統與Java中間件實踐】。



台灣電動床工廠 電動床

台灣電動床工廠 電動床

arrow
arrow
    全站熱搜

    n3x2g2dbts 發表在 痞客邦 留言(0) 人氣()