《大型網站系統與Java中間件實踐》圍繞大型網站和支撐大型網站架構的 Java 中間件的實踐展開介紹。從分布式系統的知識切入,讓讀者對分布式系統有基本的了解;然后介紹大型網站隨著數據量、訪問量增長而發生的架構變遷;接著講述構建 Java 中間件的相關知識;之后的幾章都是根據筆者的經驗來介紹支撐大型網站架構的 Java 中間件系統的設計和實踐。希望讀者通過《大型網站系統與Java中間件實踐》可以了解大型網站架構變遷過程中的較為通用的問題和解法,并了解構建支撐大型網站的 Java 中間件的實踐經驗。對于有一定網站開發、設計經驗,并想了解大型網站架構和支撐這種架構的系統的開發、測試等的相關工程人員,《大型網站系統與Java中間件實踐》有很大的參考意義;對于沒有網站開發設計經驗的人員,通過《大型網站系統與Java中間件實踐》也能宏觀了解大型網站的架構及相關問題的解決思路和方案。
推薦購買:
《ZeroMQ:云時代極速消息通信庫》
大規模|可擴展|低成本|高效率解決之道,大規模分布式|多線程應用程序|消息傳遞架構構建利器
《從Paxos到Zookeeper:分布式一致性原理與實踐》
分布式一致性及ZooKeeper實戰力作 來自國內大型、復雜、悠久系統
《ElasticSearch:可擴展的開源彈性搜索解決方案》
ES技術書 剖析這一快速、靈活、可擴展的搜索解決方案
《Spark大數據處理技術》
(Shark|Spark SQL|Spark Streaming|Graphx|Tachyon深度解密Spark完整生態 Committer凝聚實力與超前視野 Spark創始人及實踐先驅聯合推薦)
《Hadoop硬實戰》
學習Hadoop和Mapreduce不二之選 85個Hadoop高級技巧實戰案例
《寫給大忙人看的Java SE 8》
Java 8極佳入門 將lambda|JavaFX|Nachorn等諸多新特性完整覆蓋 Horstmann大師新作 從頭學語言與專業人士跟進新版皆宜
《大型網站系統與Java中間件實踐》
到底是本什么書,擁有這樣一份作序推薦人列表:阿里集團章文嵩博士|新浪TimYang|去哪網吳永強|丁香園馮大輝|蘑菇街岳旭強|途牛湯崢嶸|豆瓣洪強寧|陳皓/林昊……
這本書出自技術部總監之手,他也是近10年來歷次技術飛躍的參與者、貢獻者和帶領者,其中的經驗直接來自服務框架、消息中間件及數據訪問層。
《技術這十年》勾勒出Java技術變遷波瀾壯闊的輪廓,本書則給出詳盡、深入、系統的解讀與演示,實用到足以讓任一層級的學習者如獲至寶。
看過的人無不暗中叫它“那些年我們一起走過的坑”,領略超大型網站陳年積淀的寶貴經驗、經驗豐富思路和具體手法,后來者就有機會彎道超車!
曾憲杰,現任美麗聯合集團技術副總裁,花名頂天。前技術部負責人,花名華黎,2002年畢業于浙江大學計算機系。2007年加入網平臺架構團隊,負責構建自主的消息中間件系統,同期主導了數據層的創建,這兩個產品也是中間件中較為重要的兩個。2010年下半年起開始負責整個中間件團隊,幫助團隊成為業內知名的Java技術團隊。2012年開始從中間件走向應用系統的研發工作,2013年初負責新組建的技術部。熟悉C 和Java,在多線程、并發、網絡通信及支撐大型網站的中間件領域有較多經驗,對新技術有濃厚的興趣。致力于帶領團隊在無線、數據、業務 平臺和組件化開發方面取得突破。
第1章 分布式系統介紹
1.1 初識分布式系統
1.1.1 分布式系統的定義
1.1.2 分布式系統的意義
1.2 分布式系統的基礎知識
1.2.1 組成計算機的5要素
1.2.2 線程與進程的執行模式
1.2.3 網絡通信基礎知識
1.2.4 如何把應用從單機擴展到分布式
1.2.5 分布式系統的難點
第2章 大型網站及其架構演進過程
2.1 什么是大型網站
2.2 大型網站的架構演進
2.2.1 用JAVA技術和單機來構建的網站
2.2.2 從一個單機的交易網站說起
2.2.3 單機負載告警,數據庫與應用分離
2.2.4 應用服務器負載告警,如何讓應用服務器走向集群
2.2.5 數據讀壓力變大,讀寫分離吧
2.2.6 彌補關系型數據庫的不足,引入分布式存儲系統
2.2.7 讀寫分離后,數據庫又遇到瓶頸
2.2.8 數據庫問題解決后,應用面對的新挑戰
2.2.9 初識消息中間件
2.2.10 總結
第3章 構建JAVA中間件
3.1 JAVA中間件的定義
3.2 構建JAVA中間件的基礎知識
3.2.1 跨平臺的JAVA運行環境——JVM
3.2.2 垃圾回收與內存堆布局
3.2.3 JAVA并發編程的類、接口和方法
3.2.4 動態
3.2.5 反射
3.2.6 網絡通信實現選擇
3.3 分布式系統中的JAVA中間件
第4章 服務框架
4.1 網站功能持續豐富后的困境與應對
4.2 服務框架的設計與實現
4.2.1 應用從集中式走向分布式所遇到的問題
4.2.2 透過示例看服務框架原型
4.2.3 服務調用端的設計與實現
4.2.4 服務提供端的設計與實現
4.2.5 服務升級
4.3 實戰中的優化
4.4 為服務化護航的服務治理
4.5 服務框架與ESB的對比
4.6 總結
第5章 數據訪問層
5.1 數據庫從單機到分布式的挑戰和應對
5.1.1 從應用使用單機數據庫開始
5.1.2 數據庫垂直/水平拆分的困難
5.1.3 單機變為多機后,事務如何處理
5.1.4 多機的SEQUENCE問題與處理
5.1.5 應對多機的數據查詢
5.2 數據訪問層的設計與實現
5.2.1 如何對外提供數據訪問層的功能
5.2.2 按照數據層流程的順序看數據層設計
5.2.3 獨立部署的數據訪問層實現方式
5.2.4 讀寫分離的挑戰和應對
5.3 總結
第6章 消息中間件
6.1 消息中間件的價值
6.1.1 消息中間件的定義
6.1.2 透過示例看消息中間件對應用的解耦
6.2 互聯網時代的消息中間件
6.2.1 如何解決消息發送一致性
6.2.2 如何解決消息中間件與使用者的強依賴問題
6.2.3 消息模型對消息接收的影響
6.2.4 消息訂閱者訂閱消息的方式
6.2.5 保障消息性的做法
6.2.6 訂閱者視角的消息重復的產生和應對
6.2.7 消息投遞的其他屬性支持
6.2.8 保障順序的消息隊列的設計
6.2.9 PUSH和PULL方式的對比
第7章 軟負載中心與集中配置管理
7.1 初識軟負載中心
7.2 軟負載中心的結構
7.3 內容聚合功能的設計
7.4 解決服務上下線的感知
7.5 軟負載中心的數據分發的特點和設計
7.5.1 數據分發與消息訂閱的區別
7.5.2 提升數據分發性能需要注意的問題
7.6 針對服務化的特性支持
7.6.1 軟負載數據分組
7.6.2 提供自動感知以外的上下線開關
7.6.3 維護管理路由規則
7.7 從單機到集群
7.7.1 數據統一管理方案
7.7.2 數據對等管理方案
7.8 集中配置管理中心
7.8.1 客戶端實現和容災策略
7.8.2 服務端實現和容災策略
7.8.3 數據庫策略
第8章 構建大型網站的其他要素
8.1 加速靜態內容訪問速度的CDN
8.2 大型網站的存儲支持
8.2.1 分布式文件系統
8.2.2 NOSQL
8.2.3 緩存系統
8.3 搜索系統
8.3.1 爬蟲問題
8.3.2 倒排索引
8.3.3 查詢預處理
8.3.4 相關度計算
8.4 數據計算支撐
8.5 系統
8.6 應用監控系統
8.7 依賴管理系統
8.8 多機房問題分析
8.9 系統容量規劃
8.10 內部私有云
后記
由于2007年一個很偶然的機會,我加入了淘寶平臺架構組,職位是C 工程師。然后我就在只完成了C語言的一個小功能后,開始了Java中間件的研究生涯。從2007年下半年到2013年年初,近6年時間我都在和支撐整個網站應用的Java中間件打交道——從設計實現消息中間件到參與數據訪問層設計,再到負責整個Java中間件團隊,我也從一個不太懂Java的C 工程師成長為對Java中間件有一定了解和積累的工程負責人。在這個過程中,我也有幸參與了淘寶從集中式的Java應用到分布式Java應用的架構變遷。
本書從分布式系統說起,然后介紹大型網站的變遷中遇到的挑戰和應對策略,接著講解Java中間件的內容,重點介紹了筆者在實踐中自主開發的支撐大型網站應用的幾個Java中間件產品,包括對它們的思考及其設計和實現原理。介紹了支撐大型網站的其他基礎要素,包括CDN、搜索、存儲、計算平臺,以及運維相關的系統等內容。
通過閱讀本書,筆者希望讀者能夠盡量完整地了解大型網站的挑戰和應對辦法,并且能夠了解淘寶在大型網站變遷過程中產生的這幾個中間件的具體產品及其背后的思考和設計,并能夠對除中間件之外的支撐大型網站的其他系統有一定的了解。希望初學者能夠更多地關注全貌,也希望有相關經驗的人士可以從本書中得到一些啟發,汲取一些經驗。
2013年5月,我的崗位有了調整,在接下來的時間中我將帶領淘寶技術部承擔淘寶業務應用的開發工作。這本書也是對自己淘寶中間件6年工作生涯的一份紀念。
要說的是,能夠完成本書有很多的人要感謝,首先要感謝淘寶給我這么好的平臺和機會,沒有這個機會就不會有本書。然后也非常感謝太太王海鳳對我的支持,4年前和林昊合著《OSGi原理與實踐》一書的時候,我們剛談戀愛,我把很多本應陪你的時間用在了寫作上;4年后,我又把本應陪你和兒子的時間用在了寫作上,沒有你的支持和理解,我不可能完成這次寫作。也要感謝我的父母、岳父母、姑姑和小表妹,有你們照顧宸宸,我才能專心地寫作本書。
曾憲杰
2013年11月于杭州
通過這本書可以學習到大量構建大型網站系統的核心技 術,以及支撐大型網站的Java中間件的必備知識。作者在超大型電子商務網站的多年實戰經驗使得本書的內容具有價值。 如果你所在的技術團隊正在因面對大型網站而一籌莫展,或 許你可以從這本書中得到啟發。另外,如果想成為Java技術架 構師,那么你也不應錯過此書。 ——馮大輝 (@Fenng) 丁香園CTO
華黎是我的前同事兼好友,聽說他要出版一本書,我就猜到是關于大型網站和中間件的,因為這是他的老本行。在互聯網技術領域,理論永遠過剩,而真正從零構建整個體系的機會少之又少,華黎是網規模高速增長、中間件體系快速發展的親歷者、核心工程師,實踐后的理論才更、更務實,這是我推薦這本書的理由。 ——岳旭強(@岳旭強) 蘑菇街CTO
與憲杰認識多年,也一起在共事過不短的時間,我深知他在大型互聯網系統和Java中間件領域不僅有很強的理論基礎,而且有豐富的實戰經驗。終于看到他把多年的積淀匯集成書,由衷地為他感到高興。拿到書稿后,我迫不及待地從頭至尾拜讀了一遍。這應該是國內及時本從基礎知識到構建應用,從理論到實踐,把Java中間件非常系統和完整地闡述清楚的書。此外,書中列舉的大量實踐經驗與很多通用設計思路不同,甚至是相反的。這是因為當面對高并發、高訪問和海量數據時,在學校中學到的知識或普通書本中看到的方法行不通。這些看似古怪或丑陋的方法,是大型互聯網企業用無數血淚換來的寶貴經驗。特此推薦給對構建大型互聯網 系統感興趣的讀者。 ——湯崢嶸(@湯崢嶸-還在路上) 途牛CTO
要用Java構建一個大流量且有著復雜處理流程的網站,中間件技術是必須要用的技術,沒有中間件就無法做到水平擴展,無法做到計算或數據集群的構建,也就無法構建一個大型網站。本書通過解決實際問題一步一步地帶著你細數了用 Java 構建一個大型網站的各種技術細節和注意事項,講解深入淺出。從系統架構到實際代碼,從基礎理論到實際操作,看得出來作者在中間件技術方面的豐富經驗。這是一本系統得可以讓你少走很多彎路的實戰型技術書。 ——陳皓( @左耳朵耗子) 集團博學技術專家
拿到書稿,一讀之下不禁擊節贊嘆!這本書對大型網站發展過程中會遇到的各種架構問題和解決方案的討論和總結,正是我在過去多年的工作中經常碰到和思考的。真是心有戚戚焉!本書詳細闡述了解決大型網站架構問題時通常都會采用的方案:服務框架、數據訪問層、消息中間件、配置管理等,對為什么要做、如何做、如何權衡得失等進行了非常細致的介紹,是一本不可多得的好書。雖然本書的內容是基于Java的實現,但在架構層面,對使用任何語言的架構師和開發者都具有重要的參考價值。 ——洪強寧(@hongqn) 豆瓣網首席架構師
本書作者是Java應用架構從集中式到分布式的實際參與者,并帶領構建中間件兩年多的時間。本書詳細說明了大型Java網站必備的三利器——服務框架、消息中間件和數據訪問層——的具體設計和實現方法,其中很多是在架構演進過程中摸爬滾打的實戰經驗和血淚教訓。書中的內容一方面有助于開闊視野,另一方面大量寶貴的實戰經驗可以給需要做類似產品的讀者帶來不小的幫助。 —— 林昊 集團博學技術專家有助于開闊視野,另一方面大量寶貴的實戰經驗可以給需要做類似產品的讀者帶來不小的幫助。 —— 林昊 集團博學技術專家
知識 組成計算機的要素 10線程與進程的K執行模式 網絡通信基礎知識 如何把應
我本來對分布式并不是非常了解,這本書從分布式的基礎到分布式中的中間件的應用。感覺這本書對分布式寫的是比較全面的,很不錯!
書已經收到。跟想像中像學到的東西還是有差距。學習先。
對于希望學習到相關知識的人提供了大量的理論知識~~個人覺得非常有用適合閱讀
挺好的一本書,看完這本書再看一些源碼,會更好。
了解一下思路還可以,但是沒有何出接地氣的解決方案。面試吹牛逼還是可以的
很好的書了。值得一讀。書的內容都是經驗之談,已經讀3遍。
書中對消息中間件的實踐內容在工作中確實能夠用到。
真心是喜歡這本書啊,充滿了干貨,一口氣讀了50多頁,感覺真是棒。里面有很多作者自己的親身經歷,讀起來非常親切有趣,而且還非常實用。
心儀已久的書籍,但是一直沒舍得買。內容很全面,對分布式感興趣的朋友,可以讀讀看,一定會受益良多。
此書還不錯,講得比較全面,但是代碼量和實例少了些。
這個值得推薦,涉及的東西太多了,需要好好消化,多研讀幾遍
閱讀了前兩章,覺得很贊,編寫思路循序漸進,剛剛在閱讀,覺得很贊所有想起來,專門來評價下。
這本書具有很高的實用價值,可以運用到實際項目中
大概看了一下,正好是我需要的分布式開發的書
看完后,對電商系統的架構演變有了認識,具有一定的方向參考性。
新出的一本關于高訪問量網站的書,一些例子很不錯。
本書真的很不錯,需要仔細去琢磨里面的原理和道理,是大型網站系統必備書籍
一口氣看了一半,忍不住來寫評論,如果你要搞中間間,或者大型分布式網站,絕對是開闊視野的好書
書的質量不錯,商家發貨也很快,就是到年跟前了,發到蘭州以后的宅急送服務態度差了點,說是15號放假,但是14號就死活不給送貨了,說是已經回家了,沒辦法只好和同事開車找到網點自己去取的。話說宅急送的網點怎么連個門牌都沒有,只有一臺電腦,連辦公桌都沒有的。管理很不規范呀。
書中的一些寶貴經驗都是作者的親身經歷,而且在中間件部分給出的一些解決方案也是實踐與理論相結合,非常值得一讀
內容這么好的一本書,配的紙卻泛黃泛黃,和《大型網站技術架構:核心原理與案例分析》一起買的,兩本書的內容都不錯,但紙質真的不敢恭維。內容是很贊的??!
更像是個人總結吧。系統從小到大過程中,各種實現方案的對比和取舍,雖然比較粗,但相關的問題都提到了。可以當做是知識梳理的提綱。如果你想了解實現細節,源碼永遠是最好的老師。書還不錯。
整體感覺不如李智慧寫的《大型網站技術架構:核心原理與案例分析》,文筆有待改進
一本寫架構思想的書,沒有過多的技術細節,講的比較清楚明了。對大型網站的宏觀架構思想的掌握幫助很大。
不錯 對大型網站關鍵中間件的架構設計及方案對比有深入的探討