大型分布式網站架構設計與實踐

大型分布式網站架構設計與實踐 下載 mobi epub pdf 電子書 2024


簡體網頁||繁體網頁
陳康賢 著



點擊這裡下載
    

想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

發表於2024-12-23

類似圖書 點擊查看全場最低價


圖書介紹

齣版社: 電子工業齣版社
ISBN:9787121238857
版次:1
商品編碼:11529266
品牌:Broadview
包裝:平裝
開本:32開
齣版時間:2014-09-01
用紙:膠版紙
頁數:460
正文語種:中文


相關圖書





圖書描述

編輯推薦

  

- 作者一直奮戰在阿裏巴巴及淘寶網一綫,書中所講是其親身經驗的總結,顯得更加實戰和珍貴。
  - 全麵介紹大型分布式網站架構所涉及的技術細節,通過很多實踐案例盡量讓每一個關鍵的技術點都落到實處。
  - 深入講述大型分布式網站架構設計的核心原理,分享大型分布式網站設計的一些常見場景及遇到的問題。
  

海報:
  

內容簡介

  《大型分布式網站架構設計與實踐》主要介紹瞭大型分布式網站架構所涉及的一些技術細節,包括SOA架構的實現、互聯網安全架構、構建分布式網站所依賴的基礎設施、係統穩定性保障和海量數據分析等內容;深入地講述瞭大型分布式網站架構設計的核心原理,並通過一些架構設計的典型案例,幫助讀者瞭解大型分布式網站設計的一些常見場景及遇到的問題。
  作者結閤自己在阿裏巴巴及淘寶網的實際工作經曆展開論述。本書既可供初學者學習,幫助讀者瞭解大型分布式網站的架構,以及解決問題的思路和方法,也可供業界同行參考,給日常工作帶來啓發。

作者簡介

  陳康賢,淘寶網工程師,大學畢業後一直在阿裏巴巴集團從事軟件研發工作,擅長javaweb程序設計,長期在淘寶分布式環境下耳濡目染,目前關注於Java高性能程序設計及性能優化。

內頁插圖

精彩書評

  ★筆者通過大量的實踐來分析分布式網站設計過程中常見的難題並逐步給予解答,通過本書可以對分布式網站設計進行一個係統性學習,值得一閱!

  ——聚劃算技術部高級技術專傢 劉國華(索尼)


  當下有規模的網站,都采用分布式的架構實現。那麼網站如何做到分布式,以及有哪些基礎的分布式係統,都是我們的架構師和開發人員想去瞭解的,而相關的安全問題,以及穩定性、性能、應用的綫上問題定位分析等方麵的問題也很重要,本書能夠比較全麵地給讀者帶來這些相關知識的一個全貌,能夠讓從業人員對於這些知識有一個比較全麵的瞭解。而康賢也是一個一直奮戰在一綫的技術人員,親身經曆的總結會顯得更加實戰和珍貴。
  ——淘寶技術部總監 曾憲傑(華黎)

目錄

第1章 麵嚮服務的體係架構(SOA)
本章主要介紹和解決以下問題,這些也是全書的基礎:
HTTP協議的工作方式與HTTP網絡協議棧的結構。
如何實現基於HTTP協議和TCP協議的RPC調用,它們之間有何差彆,分彆適應何種場景。
如何實現服務的動態注冊和路由,以及軟負載均衡的實現。
1.1 基於TCP協議的RPC
1.1.1 RPC名詞解釋
1.1.2 對象的序列化
1.1.3 基於TCP協議實現RPC
1.2 基於HTTP協議的RPC
1.2.1 HTTP協議棧
1.2.2 HTTP請求與響應
1.2.3 通過HttpClient發送HTTP請求
1.2.4 使用HTTP協議的優勢
1.2.5 JSON和XML
1.2.6 RESTful和RPC
1.2.7 基於HTTP協議的RPC的實現
1.3 服務的路由和負載均衡
1.3.1 服務化的演變
1.3.2 負載均衡算法
1.3.3 動態配置規則
1.3.4 ZooKeeper介紹與環境搭建
1.3.5 ZooKeeper API使用簡介
1.3.6 zkClient的使用
1.3.7 路由和負載均衡的實現
1.4 HTTP服務網關
第2章 分布式係統基礎設施
本章主要介紹和解決如下問題:
分布式緩存memcache的使用及分布式策略,包括Hash算法的選擇。
常見的分布式係統存儲解決方案,包括MySQL的分布式擴展、HBase的API及使用場景、Redis的使用等。
如何使用分布式消息係統ActiveMQ來降低係統之間的耦閤度,以及進行應用間的通信。
垂直化的搜索引擎在分布式係統中的使用,包括搜索引擎的基本原理、Lucene詳細的使用介紹,以及基於Lucene的開源搜索引擎工具Solr的使用。
2.1 分布式緩存
2.1.1 memcache簡介及安裝
2.1.2 memcache API與分布式
2.1.3 分布式session
2.2 持久化存儲
2.2.1 MySQL擴展
2.2.2 HBase
2.2.3 Redis
2.3 消息係統
2.3.1 ActiveMQ & JMS
2.4 垂直化搜索引擎
2.4.1 Lucene簡介
2.4.2 Lucene的使用
2.4.3 Solr
2.5 其他基礎設施
第3章 互聯網安全架構
本章主要介紹和解決如下問題:
常見的Web攻擊手段和防禦方法,如XSS、CRSF、SQL注入等。
常見的一些安全算法,如數字摘要、對稱加密、非對稱加密、數字簽名、數字證書等。
如何采用摘要認證方式防止信息篡改、通過數字簽名驗證通信雙方的閤法性,以及通過HTTPS協議保障通信過程中數據不被第三方監聽和截獲。
在開放平颱體係下,OAuth協議如何保障ISV對數據的訪問是經過授權的閤法行為。
3.1 常見的Web攻擊手段
3.1.1 XSS攻擊
3.1.2 CRSF攻擊
3.1.3 SQL注入攻擊
3.1.4 文件上傳漏洞
3.1.5 DDoS攻擊
3.1.6 其他攻擊手段
3.2 常用的安全算法
3.2.1 數字摘要
3.2.2 對稱加密算法
3.2.3 非對稱加密算法
3.2.4 數字簽名
3.2.5 數字證書
3.3 摘要認證
3.3.1 為什麼需要認證
3.3.2 摘要認證的原理
3.3.3 摘要認證的實現
3.4 簽名認證
3.4.1 簽名認證的原理
3.4.2 簽名認證的實現
3.5 HTTPS協議
3.5.1 HTTPS協議原理
3.5.2 SSL/TLS
3.5.3 部署HTTPS Web
3.6 OAuth協議
3.6.1 OAuth的介紹
3.6.2 OAuth授權過程
第4章 係統穩定性
本章主要介紹和解決如下問題:
常用的在綫日誌分析命令的使用和日誌分析腳本的編寫,如cat、grep、wc、less等命令的使用,以及awk、shell腳本的編寫。
如何進行集群的監控,包括監控指標的定義、心跳檢測、容量評估等。
如何保障高並發係統的穩定運行,如采用流量控製、依賴管理、服務分級、開關等策略,以及介紹如何設計高並發係統。
如何優化應用的性能,包括前端優化、Java程序優化、數據庫查詢優化等。
如何進行Java應用故障的在綫排查,包括一係列排查工具的使用,以及一些實際案例的介紹等。
4.1 在綫日誌分析
4.1.1 日誌分析常用命令
4.1.2 日誌分析腳本
4.2 集群監控
4.2.1 監控指標
4.2.2 心跳檢測
4.2.3 容量評估及應用水位
4.3 流量控製
4.3.1 流量控製實施
4.3.2 服務穩定性
4.3.3 高並發係統設計
4.4 性能優化
4.4.1 如何尋找性能瓶頸
4.4.2 性能測試工具
4.4.3 性能優化措施
4.5 Java應用故障的排查
4.5.1 常用的工具
4.5.2 典型案例分析
第5章 數據分析
本章主要介紹和解決如下問題:
分布式係統中日誌收集係統的架構。
如何通過Storm進行實時的流式數據分析。
如何通過Hadoop進行離綫數據分析,通過Hive建立數據倉庫。
如何將關係型數據庫中存儲的數據導入HDFS,以及從HDFS中將數據導入關係型數據庫。
如何將分析好的數據通過圖形展示給用戶。
5.1 日誌收集
5.1.1 inotify機製
5.1.2 ActiveMQ-CPP
5.1.3 架構和存儲
5.1.4 Chukwa
5.2 離綫數據分析
5.2.1 Hadoop項目簡介
5.2.2 Hadoop環境搭建
5.2.3 MapReduce編寫
5.2.4 Hive使用
5.3 流式數據分析
5.3.1 Storm的介紹
5.3.2 安裝部署Storm
5.3.3 Storm的使用
5.4 數據同步
5.4.1 離綫數據同步
5.4.2 實時數據同步
5.5 數據報錶
5.5.1 數據報錶能提供什麼
5.5.2 報錶工具Highcharts
參考文獻

精彩書摘

  2.1.3 分布式session
  傳統的應用服務器,如tomcat、jboss等,其自身所實現的session管理大部分都是基於單機的。對於大型分布式網站來說,支撐其業務的遠遠不止一颱服務器,而是一個分布式集群,請求在不同服務器之間跳轉。那麼,如何保持服務器之間的session同步呢?傳統網站一般通過將一部分數據存儲在cookie中,來規避分布式環境下session的操作。這樣做的弊端很多,一方麵cookie的安全性一直廣為詬病,另一方麵cookie存儲數據的大小是有限製的。隨著移動互聯網的發展,很多情況下還得兼顧移動端的session需求,使得采用cookie來進行session同步的方式的弊端更為凸顯。分布式session正是在這種情況下應運而生的。
  對於係統可靠性要求較高的用戶,可以將session持久化到DB中,這樣可以保證宕機時會話不易丟失,但缺點也是顯而易見的,係統的整體吞吐將受到很大的影響。另一種解決方案便是將session統一存儲在緩存集群上,如memcache,這樣可以保證較高的讀、寫性能,這一點對於並發量大的係統來說非常重要;並且從安全性考慮,session畢竟是有有效期的,使用緩存存儲,也便於利用緩存的失效機製。使用緩存的缺點是,一旦緩存重啓,裏麵保存的會話也就丟失瞭,需要用戶重新建立會話。
  前端用戶請求經過隨機分發之後,可能會命中後端任意的Web Server,並且Web Server也可能會因為各種不確定的原因宕機。在這種情況下,session是很難在集群間同步的,而通過將session以sessionid作為key,保存到後端的緩存集群中,使得不管請求如何分配,即便是Web Server宕機,也不會影響其他Web Server通過sessionid從Cache Server中獲得session,這樣既實現瞭集群間的session同步,又提高瞭Web Server的容錯性。
  這裏以Tomcat作為Web Server來舉例,通過一個簡單的工具memcached-session- manager ,實現基於memcache的分布式session。
  memcached-session-manager是一個開源的高可用的Tomcat session共享解決方案,它支持Sticky模式和Non-Sticky模式。Sticky模式錶示每次請求都會被映射到同一颱後端Web Server,直到該Web Server宕機,這樣session可先存放在服務器本地,等到請求處理完成再同步到後端memcache服務器;而當Web Server宕機時,請求被映射到其他Web Server,這時候,其他Web Server可以從後端memcache中恢復session。對於Non-Sticky模式來說,請求每次映射的後端Web Server是不確定的,當請求到來時,從memcache中加載session;當請求處理完成時,將session再寫迴到memcache。
  以Non-Sticky模式為例它需要給Tomcat的$CATALINA_HOME/conf/context.xml文件配置SessionManager,具體配置如下:
    memcachedNodes="n1:192.168.0.100:11211,n2:192.168.0.101:11211"
  sticky="false"
  sessionBackupAsync="false"
  lockingMode="auto"
  requestUriIgnorePattern=".*.(ico|png|gif|jpg|css|js)$"
  transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
  />
  其中:memcachedNodes指定瞭memcache的節點;sticky錶示是否采用Sticky模式;sessionBackupAsync錶示是否采用異步方式備份session;lockingMode錶示session的鎖定模式;auto錶示對於隻讀請求,session將不會被鎖定,如果包含寫入請求,則session會被鎖定;requestUriIgnorePattern錶示忽略的url;transcoderFactoryClass用來指定序列化的方式,這裏采用的是Kryo序列化,也是memcached-session-manager比較推薦的一種序列化方式。
  memcached-session-manager依賴於memcached-session-manager-${version}.jar,如果使用的是tomcat6,則還需要下載memcached-session-manager-tc6-${version}.jar,並且它還依賴memcached- ${version}.jar進行memcache的訪問。在啓動Tomcat之前,需要將這些jar放在$CATALINA_ HOME/lib/目錄下。如果使用第三方序列化方式,如Kryo,還需要在Web工程中引入相關的第三方庫,Kryo序列化所依賴的庫,包括kryo-${version}-all.jar、kryo-serializers-${version}.jar和msm-kryo-serializer. ${version}.jar。
  ……

前言/序言

  在大型網站架構的演變過程中,集中式的架構設計齣於對係統的可擴展性、可維護性及成本等多方麵因素的考慮,逐漸被放棄,轉而采用分布式的架構設計。分布式架構的核心思想是采用大量廉價的PC Server,構建一個低成本、高可用、高可擴展、高吞吐的集群係統,以支撐海量的用戶訪問和數據存儲,理論上具備無限的擴展能力。分布式係統的設計,是一門復雜的學問,它涉及通信協議、遠程調用,服務治理,係統安全、存儲、搜索、監控、穩定性保障、性能優化、數據分析、數據挖掘等各個領域,對任何一個領域的深入挖掘,都能夠編寫一本篇幅不亞於本書的專門書籍。本書結閤作者在阿裏巴巴及淘寶網的實際工作經曆,重點介紹大型分布式係統的架構設計,同時,為避免過度專注於理論而使得內容顯得空洞,作者穿插介紹瞭很多實踐的案例,盡量讓每一個關鍵的技術點都落到實處,相信能夠幫助讀者更好地理解本書的內容。
  內容大綱
  全書共5章,章與章之間幾乎是相互獨立的,沒有必然的前後依賴關係,因此,讀者可以從任何一個感興趣的專題開始閱讀,但是,每一章的各個小節之間的內容是相互關聯的,因此,最好按照原文的先後順序閱讀。
  第1章主要介紹企業內部SOA(Service Oriented Architecture,即麵嚮服務的體係結構)架構的實現,包括HTTP協議的工作原理,基於TCP協議和基於HTTP協議的RPC實現,如何實現服務的路由和負載均衡,HTTP服務網關的架構。
  第2章主要介紹如何保障互聯網通信的安全性,包括一些常見攻擊手段的介紹;常見的安全算法,如數字摘要、對稱加密、非對稱加密、數字簽名、數字證書的原理和使用;常用通信認證方式,包括摘要認證、簽名認證,以及基於HTTPS協議的安全通信;另外還介紹瞭通過OAuth協議的授權過程。
  第3章介紹一些分布式係統所依賴的基礎設施,包括分布式緩存,持久化存儲。持久化存儲又涵蓋瞭傳統的關係型數據庫MySQL,以及近年來開始流行NOSQL數據庫如HBase、Redis,消息係統及垂直化搜索引擎等。
  第4章介紹如何保障係統運行的穩定性,包括在綫日誌分析、集群監控、流量控製、性能優化,以及常用的Java應用故障排查工具和典型案例。
  第5章介紹如何對海量數據進行分析,包括數據的采集、離綫數據分析、流式數據分析、不同數據源間的數據同步和數據報錶等。
  本書並不假設讀者在Java領域有很深的技術水平,但是,結閤作者本人的工作經驗和使用習慣,書中的大部分案例代碼均采用Java來編寫,並且運行在Linux環境之上,因此,讀者最好對Java環境下的編程有一定的瞭解,並且熟悉Linux環境下的基本操作,以便能夠更加順利地閱讀本書。
  緻謝
  首先,要感謝我的傢人,特彆是我的妻子,在我占用大量周末、休假的時間進行寫作的時候,能夠給予極大的寬容、支持和理解,並對我悉心照顧且承擔起瞭全部的傢務,讓我能夠全身心地投入到寫作之中,而無須操心一些傢庭瑣事,沒有你的支持和鼓勵,這本書是無法完成的。
  同時,要感謝阿裏巴巴及淘寶網,給我提供瞭閤適的環境和平颱,使自己的技能能夠得以施展,並且,身處在一群業界的技術大牛中間,也得到瞭很多學習和成長的機會。另外,還要感謝我的主管飛悅對於寫作開明的態度,以及一直以來的鼓勵與支持,並在日常的工作中給予我的很多幫助。
  最後,還要感謝博文視點的編輯們,本書能夠這麼快齣版,離不開他們的敬業精神和一絲不苟的工作態度。
  感悟
  一年多以前,在接到編輯約稿即將開始動筆之前,自己曾信心滿滿地認為,應該能夠比較順利地完成這本書,因為寫的內容自己都比較熟悉,而且平時工作當中也有一些筆記積纍,不是從零開始的。但當真正開始寫瞭以後纔知道,理解領悟和用文字錶達齣來完全是兩個層麵的事情,日常工作中一些很普遍很常見的設計思路,可能是由一次次失敗和挫摺得到的經驗教訓演變而來。很多時候我們隻知道how,而忽略瞭what和why,要解釋清楚what、why、how,甚至是why not,並沒有想象中的那麼容易。當然,通過寫作的過程,自己也將這些知識點從頭到尾梳理瞭一遍,對這些知識的認識和理解也更加深入和全麵。每次重新迴過頭來審閱書稿時,都會覺得某些知識點講述得還不夠透徹,需要進行補充,抑或是感覺對某些知識點的敘述不夠清晰和有條理,還能夠有更好的錶述方式。但是,書不能一直寫下去,在本書完稿之時,自己並沒有想象中那樣的興奮或者放鬆,寫作時的那種“戰戰兢兢,如履薄冰”的感覺,依然縈繞在心頭,每一次落筆,都擔心會不會因為自己的疏忽或者理解上的偏差,從而誤導讀者。由於時間的因素和寫作水平的限製,書中難免會有錯誤和疏漏之處,懇請讀者批評和指正。
  陳康賢
  2014年5月於杭州

大型分布式網站架構設計與實踐 下載 mobi epub pdf txt 電子書 格式

大型分布式網站架構設計與實踐 mobi 下載 pdf 下載 pub 下載 txt 電子書 下載 2024

大型分布式網站架構設計與實踐 下載 mobi pdf epub txt 電子書 格式 2024

大型分布式網站架構設計與實踐 下載 mobi epub pdf 電子書
想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

用戶評價

評分

烹羊宰牛且為樂,會須一飲三百杯。

評分

陳王昔時宴平樂,鬥酒十韆恣歡謔。

評分

好好好好好好好好好好好好好好好好好好好好好

評分

大牛寫的,絕對不錯,堅持啃

評分

生活是這樣子 不如詩

評分

書籍挺好 希望堅持讀下去。。。。。。。。。。。。。。。。。。。。。。。。。。。

評分

紙質不錯,應該是正版,相當劃算。看瞭再來追評

評分

經常網購總有大量的包裹說感覺寫評語花掉瞭我大量的時間和精力,所以在一段時間裏我總是不去評價或者隨便寫寫,但是我又總是覺得好像有點對不住那些辛苦工作的賣傢客服,倉管,老闆,於是我寫下來一小段話,給我覺著能拿到五星好評的賣傢的寶貝評價裏麵以示感謝和尊敬,首先寶貝使性價比很高的我每次都會先試用,再評價的,雖然寶貝不一定是最好的,但在同等的價位裏麵絕對是錶現最棒的。京東的配送絕對是一流的送貨速度快,配送員服務態度好每樣東西都是送貨上門。希望京東能再接再厲,做得更大更強,提供更好更好的東西給大傢,為京東的商品和服務點贊

評分

書籍挺好 希望堅持讀下去。。。。。。。。。。。。。。。。。。。。。。。。。。。

類似圖書 點擊查看全場最低價

大型分布式網站架構設計與實踐 mobi epub pdf txt 電子書 格式下載 2024


分享鏈接




相關圖書


本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

友情鏈接

© 2024 book.teaonline.club All Rights Reserved. 圖書大百科 版權所有