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

下載地址:網盤下載



基本介紹

編輯

內容簡介

到底是本什么書,擁有這樣一份作序推薦人列表:阿里集團章文嵩博士|新浪TimYang|去哪網吳永強|丁香園馮大輝|蘑菇街岳旭強|途牛湯崢嶸|豆瓣洪強寧|某電商陳皓/林昊……?
  這本書出自某電商技術部總監之手,他也是某電商近10年來歷次技術飛躍的參與者、貢獻者和帶領者,其中的經驗直接來自某電商服務框架、消息中間件及數據訪問層。?
  《某電商技術這十年》勾勒出某電商Java技術變遷波瀾壯闊的輪廓,本書則給出最詳盡、深入、系統的解讀與演示,實用到足以讓任一層級的學習者如獲至寶。?
  看過的人無不暗中叫它“那些年我們一起走過的坑”,領略超大型網站陳年積淀的寶貴經驗、領先思路和具體手法,后來者就有機會彎道超車!

作者簡介

曾憲杰,某電商花名華黎,現任某電商技術部總監。2002年畢業于浙江大學計算機系。2007年加入某電商網平臺架構團隊,負責構建某電商自主的消息中間件系統,同期主導了某電商數據層的創建,這兩個產品也是某電商中間件中較為重要的兩個。2010年下半年起開始負責整個某電商中間件團隊,幫助團隊成為業內知名的Java技術團隊。2012年開始從中間件走向應用系統的研發工作,2013年初負責新組建的某電商技術部。熟悉C++和Java,在多線程、并發、網絡通信及支撐大型網站的中間件領域有較多經驗,對新技術有濃厚的興趣。致力于帶領團隊在無線、數據、業務 平臺和組件化開發方面取得突破。與林昊合著有《OSGi原理與最佳實踐》一書。

專業推薦

編輯

媒體推薦

通過這本書可以學習到大量構建大型網站系統的核心技 術,以及支撐大型網站的Java中間件的必備知識。作者在超大型電子商務網站的多年實戰經驗使得本書的內容極具價值。 如果你所在的技術團隊正在因面對大型網站而一籌莫展,或 許你可以從這本書中得到啟發。另外,如果想成為Java技術架 構師,那么你也不應錯過此書。 ——馮大輝 (@Fenng) 丁香園CTO?
  華黎是我的前同事兼好友,聽說他要出版一本書,我就猜到是關于大型網站和中間件的,因為這是他的老本行。在互聯網技術領域,理論永遠過剩,而真正從零構建整個體系的機會少之又少,華黎是某寶網規模高速增長、中間件體系快速發展的親歷者、核心工程師,實踐后的理論才更精確、更務實,這是我推薦這本書的理由。 ——岳旭強(@岳旭強) 蘑菇街CTO?
  與憲杰認識多年,也一起在某寶共事過不短的時間,我深知他在大型互聯網系統和Java中間件領域不僅有很強的理論基礎,而且有豐富的實戰經驗。終于看到他把多年的積淀匯集成書,由衷地為他感到高興。拿到書稿后,我迫不及待地從頭至尾拜讀了一遍。這應該是國內第一本從基礎知識到構建應用,從理論到實踐,把Java中間件非常系統和完整地闡述清楚的書。此外,書中列舉的大量實踐經驗與很多通用設計思路不同,甚至是相反的。這是因為當面對高并發、高訪問和海量數據時,在學校中學到的知識或普通書本中看到的方法行不通。這些看似古怪或丑陋的方法,是大型互聯網企業用無數血淚換來的寶貴經驗。特此推薦給對構建大型互聯網 系統感興趣的讀者。 ——湯崢嶸(@湯崢嶸-還在路上) 途牛CTO?
  要用Java構建一個大流量且有著復雜處理流程的網站,中間件技術是必須要用的技術,沒有中間件就無法做到水平擴展,無法做到計算或數據集群的構建,也就無法構建一個大型網站。本書通過解決實際問題一步一步地帶著你細數了用 Java 構建一個大型網站的各種技術細節和注意事項,講解深入淺出。從系統架構到實際代碼,從基礎理論到實際操作,看得出來作者在中間件技術方面的豐富經驗。這是一本系統得可以讓你少走很多彎路的實戰型技術書。 ——陳皓( @左耳朵耗子) 阿里巴巴集團資深技術專家?
  拿到書稿,一讀之下不禁擊節贊嘆!這本書對大型網站發展過程中會遇到的各種架構問題和解決方案的討論和總結,正是我在過去多年的工作中經常碰到和思考的。真是心有戚戚焉!本書詳細闡述了解決大型網站架構問題時通常都會采用的方案:服務框架、數據訪問層、消息中間件、配置管理等,對為什么要做、如何做、如何權衡得失等進行了非常細致的介紹,是一本不可多得的好書。雖然本書的內容是基于Java的實現,但在架構層面,對使用任何語言的架構師和開發者都具有重要的參考價值。 ——洪強寧(@hongqn) 豆瓣網首席架構師?
  本書作者是某寶Java應用架構從集中式到分布式的實際參與者,并帶領構建某寶中間件兩年多的時間。本書詳細說明了大型Java網站必備的三利器——服務框架、消息中間件和數據訪問層——的具體設計和實現方法,其中很多是某寶在架構演進過程中摸爬滾打的實戰經驗和血淚教訓。書中的內容一方面有助于開闊視野,另一方面大量寶貴的實戰經驗可以給需要做類似產品的讀者帶來不小的幫助。 —— 林昊 阿里巴巴集團資深技術專家

名人推薦

通過這本書可以學習到大量構建大型網站系統的核心技術,以及支撐大型網站的Java中間件的必備知識,作者在超大型電子商務網站的多年實戰經驗使得本書的內容極具價值。如果你所在的技術團隊正在因面對大型網站而一籌莫展,或許你可以從這本書中得到啟發:另外,如果想成為Java技術架構師,那么你也不應錯過此書。?
  ——馮大輝(@Fenng) 丁香園CTO?
  華黎是我的前同事兼好友,聽說他要出版一本書,我就猜到是關于大型網站和中間件的,因為這是他的老本行。在互聯網技術領域,理論永遠過剩,而真正從零構建整個體系的機會少之又少,華黎是規模高速增長、中間件體系快速發展的親歷者、核心工程師,實踐后的理論才更精確、更務實,這是我推薦這本書的理由。?
  ——岳旭強(@岳旭強) 蘑菇街CTO?
  與憲杰認識多年,也一起共事過不短的時間,我深知他在大型互聯網系統和Java中間件領域不僅有很強的理論基礎,而且有豐富的實戰經驗。終于看到他把多年的積淀匯集成書,由衷地為他感到高興。拿到書稿后,我迫不及待地從頭至尾拜讀了一遍。這應該是國內第一本從基礎知識到構建應用,從理論到實踐,把Java中間件非常系統和完整地闡述清楚的書 此外,書中列舉的大量實踐經驗與很多通用設計思路不同,甚至是相反的。這是因為當面對高并發、高訪問和海量數據時,在學校中學到的知識或普通書本中看到的方法行不通。這些看似古怪或丑陋的方法,是大型互聯網企業用無數血淚換來的寶貴經驗特此推薦給對構建大型互聯網系統感興趣的讀者。?
  ——湯崢嶸(@湯崢嶸一還在路上) 途牛CTO?
  要用Java構建一個大流量且有著復雜處理流程的網站,中間件技術是必須要用的技術,沒有中問件就無法做到水平擴展,無法做到計算或數據集群的構建,也就無法構建一個大型網站。本書通過解決實際問題一步一步地帶著你細數了用Java構建一個大型網站的各種技術細節和注意事項,講解深入淺出,從系統架構到實際代碼,從基礎理論到實際操作,看得出來作者在中間件技術方面的豐富經驗。這是一本系統的可以讓你少走很多彎路的實戰型技術書。?
  ——陳皓(@左耳朵耗子)阿里巴巴集團資深技術專家?
  拿到書稿,一讀之下不禁擊節贊嘆!這本書對大型網站發展過程中會遇到的各種架構問題和解決方案的討論和總結,正是我在過去多年的工作中經常碰到和思考的。真是心有戚威焉!本書詳細闡述了解決大型網站架構問題時通常都會采用的方案:服務框架、數據訪問層、消息中間件、配置管理等,對為什么要做、如何做、如何權衡得失等進行了非常細致的介紹,是一本不可多得的好書。雖然本書的內容是基于Java的實現,但在架構層面,對使用任何語言的架構師和開發者都具有重要的參考價值。?
  ——洪強寧(@hongqn) 豆瓣網首席架構師?
  本書作者是Java應用架構從集中式到分布式的實際參與者。并帶領構建中間件兩年多的時間 本書詳細說明了大型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

序言

編輯
由于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月于杭州



下載地址:網盤下載

轉載于:https://www.cnblogs.com/long12365/p/9731661.html

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

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

相關文章

office漏洞利用--獲取shell

環境: kali系統, windows系統 流程: 在kali系統生成利用文件, kali系統下監聽本地端口, windows系統打開doc文件,即可中招 第一種利用方式, 適合測試用: 從git下載代碼: …

pandas之DataFrame合并merge

一、merge merge操作實現兩個DataFrame之間的合并,類似于sql兩個表之間的關聯查詢。merge的使用方法及參數解釋如下: pd.merge(left, right, onNone, howinner, left_onNone, right_onNone, left_indexFalse, right_indexFalse,    sortFalse, suffi…

typescript_如何掌握高級TypeScript模式

typescriptby Pierre-Antoine Mills皮埃爾安托萬米爾斯(Pierre-Antoine Mills) 如何掌握高級TypeScript模式 (How to master advanced TypeScript patterns) 了解如何為咖喱和Ramda創建類型 (Learn how to create types for curry and Ramda) Despite the popularity of curry…

html函數splice,js數組的常用函數(slice()和splice())和js引用的三種方法總結—2019年1月16日...

總結:slice()和splice()slice(參數1,參數2)可以查找數組下對應的數據,參數1為起始位置,參數2為結束位置,參數2可以為負數,-1對應的是從后向前數的第一個數值。splice()可以進行增刪改查數據操作,splice(參數…

leetcode 643. 子數組最大平均數 I(滑動窗口)

給定 n 個整數,找出平均數最大且長度為 k 的連續子數組,并輸出該最大平均數。 示例: 輸入:[1,12,-5,-6,50,3], k 4 輸出:12.75 解釋:最大平均數 (12-5-650)/4 51/4 12.75 代碼 class Solution {publ…

python ==字符串

字符串類型(str): 包含在引號(單,雙,三)里面,由一串字符組成。 用途:姓名,性別,地址,學歷,密碼 Name ‘zbk’ 取值: 首先要明確,字符…

認證鑒權與API權限控制在微服務架構中的設計與實現(一)

作者: [Aoho’s Blog] 引言: 本文系《認證鑒權與API權限控制在微服務架構中的設計與實現》系列的第一篇,本系列預計四篇文章講解微服務下的認證鑒權與API權限控制的實現。 1. 背景 最近在做權限相關服務的開發,在系統微服務化后&a…

mac下完全卸載程序的方法

在國外網上看到的,覺得很好,不僅可以長卸載的知識,還對mac系統有更深的認識。比如偏好設置文件,我以前設置一個程序壞了,打不開了,怎么重裝都打不開,后來才知道系統還保留著原來的偏好設置文件。…

機器學習集群_機器學習中的多合一集群技術在無監督學習中應該了解

機器學習集群Clustering algorithms are a powerful technique for machine learning on unsupervised data. The most common algorithms in machine learning are hierarchical clustering and K-Means clustering. These two algorithms are incredibly powerful when appli…

自考本科計算機要學什么,計算機自考本科需要考哪些科目

高科技發展時代,怎離得開計算機技術?小學生都要學編程了,未來趨勢一目了然,所以如今在考慮提升學歷的社會成人,多半也青睞于計算機專業,那么計算機自考本科需要考哪些科目?難不難?自…

審查指南 最新版本_代碼審查-最終指南

審查指南 最新版本by Assaf Elovic通過阿薩夫埃洛維奇 代碼審查-最終指南 (Code Review — The Ultimate Guide) 構建團隊代碼審查流程的終極指南 (The ultimate guide for building your team’s code review process) After conducting hundreds of code reviews, leading R…

非對稱加密

2019獨角獸企業重金招聘Python工程師標準>>> 概念 非對稱加密算法需要兩個密鑰:公鑰(publickey)和私鑰(privatekey)。公鑰與私鑰是一對,如果用公鑰對數據進行加密,只有用對應的私…

管理Sass項目文件結構

http://www.w3cplus.com/preprocessor/architecture-sass-project.html 編輯推薦: 掘金是一個高質量的技術社區,從 CSS 到 Vue.js,性能優化到開源類庫,讓你不錯過前端開發的每一個技術干貨。 點擊鏈接查看最新前端內容&#xff0c…

Spring—注解開發

Spring原始注解 Spring是輕代碼而重配置的框架,配置比較繁重,影響開發效率,所以注解開發是一種趨勢,注解代替xml配置文 件可以簡化配置,提高開發效率。 Component 使用在類上用于實例化BeanController 使用在web層類…

政府公開數據可視化_公開演講如何幫助您設計更好的數據可視化

政府公開數據可視化What do good speeches and good data visualisation have in common? More than you may think.好的演講和好的數據可視化有什么共同點? 超出您的想象。 Aristotle — the founding father of all things public speaking — believed that th…

C++字符串完全指引之一 —— Win32 字符編碼 (轉載)

C字符串完全指引之一 —— Win32 字符編碼原著:Michael Dunn翻譯:Chengjie Sun 原文出處:CodeProject:The Complete Guide to C Strings, Part I 引言  毫無疑問,我們都看到過像 TCHAR, std::string, BSTR 等各種各樣…

網絡計算機無法訪問 請檢查,局域網電腦無法訪問,請檢查來賓訪問帳號是否開通...

局域網電腦無法訪問,有時候并不是由于網絡故障引起的,而是因為自身電腦的一些設置問題,例如之前談過的網絡參數設置不對造成局域網電腦無法訪問。今天分析另一個電腦設置的因素,它也會導致局域網電腦無法訪問,那就是賓…

unity中創建游戲場景_在Unity中創建Beat Em Up游戲

unity中創建游戲場景Learn how to use Unity to create a 3D Beat Em Up game in this full tutorial from Awesome Tuts. 在Awesome Tuts的完整教程中,了解如何使用Unity來創建3D Beat Em Up游戲。 This tutorial covers everything you need to know to make a …

雷軍的金山云D輪獲3億美元!投后估值達19億美金

12月12日,雷軍旗下金山云宣布D輪完成3億美元融資,金額為云行業單輪融資最高。至此金山云投后估值達到19億美元,成為國內估值最高的獨立云服務商。金山集團相關公告顯示,金山云在本輪融資中總計發行3.535億股D系列優先股。驪悅投資…

轉:利用深度學習方法進行情感分析以及在海航輿情云平臺的實踐

http://geek.csdn.net/news/detail/139152 本文主要為大家介紹深度學習算法在自然語言處理任務中的應用——包括算法的原理是什么,相比于其他算法它具有什么優勢,以及如何使用深度學習算法進行情感分析。 原理解析 在講算法之前,我們需要先剖…