大型網站系統與Java中間件實踐

大型網站系統與Java中間件實踐

曾憲傑創作的書籍
《大型網站系統與Java中間件實踐》是由曾憲傑創作的書籍,于2014年4月24日電子工業出版社出版。[1]本書出自某電商技術部總監之手,他也是某電商近10年來曆次技術飛躍的參與者、貢獻者和帶領者,其中的經驗直接來自某電商服務框架、消息中間件及數據訪問層。
    書名:大型網站系統與Java中間件實踐 别名: 作者:曾憲傑 類别: 原作品: 譯者: 出版社:電子工業出版社 頁數:360 定價:65.00 開本: 裝幀:平裝 ISBN:9787121227615

内容簡介

到底是本什麼書,擁有這樣一份作序推薦人列表:阿裡集團章文嵩博士|新浪TimYang|去哪網吳永強|丁香園馮大輝|蘑菇街嶽旭強|途牛湯峥嵘|豆瓣洪強甯|某電商陳皓/林昊……

《某電商技術這十年》勾勒出某電商Java技術變遷波瀾壯闊的輪廓,本書則給出最詳盡、深入、系統的解讀與演示,實用到足以讓任一層級的學習者如獲至寶。

看過的人無不暗中叫它“那些年我們一起走過的坑”,領略超大型網站陳年積澱的寶貴經驗、領先思路和具體手法,後來者就有機會彎道超車!

圖書目錄

第1章分布式系統介紹1

1.1初識分布式系統1

1.1.1分布式系統的定義1

1.1.2分布式系統的意義3

1.2分布式系統的基礎知識5

1.2.1組成計算機的5要素5

1.2.2線程與進程的執行模式6

1.2.3網絡通信基礎知識13

1.2.4如何把應用從單機擴展到分布式18

1.2.5分布式系統的難點31

第2章大型網站及其架構演進過程35

2.1什麼是大型網站35

2.2大型網站的架構演進37

2.2.1用Java技術和單機來構建的網站37

2.2.2從一個單機的交易網站說起38

2.2.3單機負載告警,數據庫與應用分離40

2.2.4應用服務器負載告警,如何讓應用服務器走向集群41

2.2.5數據讀壓力變大,讀寫分離吧50

2.2.6彌補關系型數據庫的不足,引入分布式存儲系統56

2.2.7讀寫分離後,數據庫又遇到瓶頸58

2.2.8數據庫問題解決後,應用面對的新挑戰60

2.2.9初識消息中間件63

2.2.10總結64

第3章構建Java中間件67

3.1Java中間件的定義67

3.2構建Java中間件的基礎知識68

3.2.1跨平台的Java運行環境——JVM69

3.2.2垃圾回收與内存堆布局70

3.2.3Java并發編程的類、接口和方法72

3.2.4動态代理89

3.2.5反射91

3.2.6網絡通信實現選擇93

3.3分布式系統中的Java中間件94

第4章服務框架97

4.1網站功能持續豐富後的困境與應對97

4.2服務框架的設計與實現100

4.2.1應用從集中式走向分布式所遇到的問題100

4.2.2透過示例看服務框架原型101

4.2.3服務調用端的設計與實現107

4.2.4服務提供端的設計與實現132

4.2.5服務升級137

4.3實戰中的優化138

4.4為服務化護航的服務治理142

4.5服務框架與ESB的對比146

4.6總結147

第5章數據訪問層149

5.1數據庫從單機到分布式的挑戰和應對149

5.1.1從應用使用單機數據庫開始149

5.1.2數據庫垂直/水平拆分的困難150

5.1.3單機變為多機後,事務如何處理152

5.1.4多機的Sequence問題與處理165

5.1.5應對多機的數據查詢168

5.2數據訪問層的設計與實現174

5.2.1如何對外提供數據訪問層的功能174

5.2.2按照數據層流程的順序看數據層設計177

5.2.3獨立部署的數據訪問層實現方式192

5.2.4讀寫分離的挑戰和應對194

5.3總結200

第6章消息中間件203

6.1消息中間件的價值203

6.1.1消息中間件的定義203

6.1.2透過示例看消息中間件對應用的解耦204

6.2互聯網時代的消息中間件208

6.2.1如何解決消息發送一緻性209

6.2.2如何解決消息中間件與使用者的強依賴問題218

6.2.3消息模型對消息接收的影響222

6.2.4消息訂閱者訂閱消息的方式229

6.2.5保證消息可靠性的做法230

6.2.6訂閱者視角的消息重複的産生和應對245

6.2.7消息投遞的其他屬性支持249

6.2.8保證順序的消息隊列的設計252

6.2.9Push和Pull方式的對比257

第7章軟負載中心與集中配置管理259

7.1初識軟負載中心259

7.2軟負載中心的結構261

7.3内容聚合功能的設計263

7.4解決服務上下線的感知267

7.5軟負載中心的數據分發的特點和設計269

7.5.1數據分發與消息訂閱的區别269

7.5.2提升數據分發性能需要注意的問題271

7.6針對服務化的特性支持272

7.6.1軟負載數據分組272

7.6.2提供自動感知以外的上下線開關273

7.6.3維護管理路由規則273

7.7從單機到集群274

7.7.1數據統一管理方案275

7.7.2數據對等管理方案276

7.8集中配置管理中心280

7.8.1客戶端實現和容災策略282

7.8.2服務端實現和容災策略284

7.8.3數據庫策略285

第8章構建大型網站的其他要素287

8.1加速靜态内容訪問速度的CDN287

8.2大型網站的存儲支持291

8.2.1分布式文件系統292

8.2.2NoSQL294

8.2.3緩存系統298

8.3搜索系統301

8.3.1爬蟲問題302

8.3.2倒排索引302

8.3.3查詢預處理304

8.3.4相關度計算304

8.4數據計算支撐304

8.5發布系統307

8.6應用監控系統310

8.7依賴管理系統312

8.8多機房問題分析315

8.9系統容量規劃317

8.10内部私有雲319

後記321

作品評價

通過這本書可以學習到大量構建大型網站系統的核心技術,以及支撐大型網站的Java中間件的必備知識,作者在超大型電子商務網站的多年實戰經驗使得本書的内容極具價值。如果你所在的技術團隊正在因面對大型網站而一籌莫展,或許你可以從這本書中得到啟發:另外,如果想成為Java技術架構師,那麼你也不應錯過此書。

——馮大輝(@Fenng),丁香園CTO

華黎是我的前同事兼好友,聽說他要出版一本書,我就猜到是關于大型網站和中間件的,因為這是他的老本行。在互聯網技術領域,理論永遠過剩,而真正從零構建整個體系的機會少之又少,華黎是規模高速增長、中間件體系快速發展的親曆者、核心工程師,實踐後的理論才更精确、更務實,這是我推薦這本書的理由。

——嶽旭強(@嶽旭強),蘑菇街CTO

與憲傑認識多年,也一起共事過不短的時間,我深知他在大型互聯網系統和Java中間件領域不僅有很強的理論基礎,而且有豐富的實戰經驗。終于看到他把多年的積澱彙集成書,由衷地為他感到高興。拿到書稿後,我迫不及待地從頭至尾拜讀了一遍。這應該是國内第一本從基礎知識到構建應用,從理論到實踐,把Java中間件非常系統和完整地闡述清楚的書。此外,書中列舉的大量實踐經驗與很多通用設計思路不同,甚至是相反的。這是因為當面對高并發、高訪問和海量數據時,在學校中學到的知識或普通書本中看到的方法行不通。這些看似古怪或醜陋的方法,是大型互聯網企業用無數血淚換來的寶貴經驗特此推薦給對構建大型互聯網系統感興趣的讀者。

——湯峥嵘(@湯峥嵘一還在路上),途牛CTO

要用Java構建一個大流量且有着複雜處理流程的網站,中間件技術是必須要用的技術,沒有中問件就無法做到水平擴展,無法做到計算或數據集群的構建,也就無法構建一個大型網站。本書通過解決實際問題一步一步地帶着你細數了用Java構建一個大型網站的各種技術細節和注意事項,講解深入淺出,從系統架構到實際代碼,從基礎理論到實際操作,看得出來作者在中間件技術方面的豐富經驗。這是一本系統的可以讓你少走很多彎路的實戰型技術書。

——陳皓(@左耳朵耗子)阿裡巴巴集團資深技術專家

拿到書稿,一讀之下不禁擊節贊歎!這本書對大型網站發展過程中會遇到的各種架構問題和解決方案的讨論和總結,正是我在過去多年的工作中經常碰到和思考的。真是心有戚威焉!本書詳細闡述了解決大型網站架構問題時通常都會采用的方案:服務框架、數據訪問層、消息中間件、配置管理等,對為什麼要做、如何做、如何權衡得失等進行了非常細緻的介紹,是一本不可多得的好書。雖然本書的内容是基于Java的實現,但在架構層面,對使用任何語言的架構師和開發者都具有重要的參考價值。

——洪強甯(@hongqn),豆瓣網首席架構師

本書作者是Java應用架構從集中式到分布式的實際參與者。并帶領構建中間件兩年多的時間,本書詳細說明了大型Java網站必備的三利器——服務框架、消息中間件和數據訪問層——的具體設計和實現方法,其中很多是在架構演進過程中摸爬滾打的實戰經驗和血淚教訓,書中的内容一方面有助于開闊視野,另一方面大量寶貴的實戰經驗可以給需要做類似産品的讀者帶來不小的幫助。

——林昊,阿裡巴巴集團資深技術專家

作者簡介

曾憲傑,某電商花名華黎,現任某電商技術部總監。2002年畢業于浙江大學計算機系。2007年加入某電商網平台架構團隊,負責構建某電商自主的消息中間件系統,同期主導了某電商數據層的創建,這兩個産品也是某電商中間件中較為重要的兩個。2010年下半年起開始負責整個某電商中間件團隊,幫助團隊成為業内知名的Java技術團隊。

2012年開始從中間件走向應用系統的研發工作,2013年初負責新組建的某電商技術部。熟悉C++和Java,在多線程、并發、網絡通信及支撐大型網站的中間件領域有較多經驗,對新技術有濃厚的興趣。緻力于帶領團隊在無線、數據、業務,平台和組件化開發方面取得突破。與林昊合著有《OSGi原理與最佳實踐》一書。

上一篇:他們最幸福

下一篇:幹炸肉

相關詞條

相關搜索

其它詞條