1. 程式人生 > >大型分散式網站架構設計與實踐pdf

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

第1章 面向服務的體系架構(SOA) 1
  本章主要介紹和解決以下問題,這些也是全書的基礎:
  HTTP協議的工作方式與HTTP網路協議棧的結構。
  如何實現基於HTTP協議和TCP協議的RPC呼叫,它們之間有何差別,分別適應何種場景。
  如何實現服務的動態註冊和路由,以及軟負載均衡的實現。
  1.1 基於TCP協議的RPC 3
  1.1.1 RPC名詞解釋 3
  1.1.2 物件的序列化 4
  1.1.3 基於TCP協議實現RPC 6
  1.2 基於HTTP協議的RPC 9
  1.2.1 HTTP協議棧 9
  1.2.2 HTTP請求與響應 15
  1.2.3 通過HttpClient傳送HTTP請求 16
  1.2.4 使用HTTP協議的優勢 17
  1.2.5 JSON和XML 18
  1.2.6 RESTful和RPC 20
  1.2.7 基於HTTP協議的RPC的實現 22
  1.3 服務的路由和負載均衡 30
  1.3.1 服務化的演變 30
  1.3.2 負載均衡演算法 33
  1.3.3 動態配置規則 39
  1.3.4 ZooKeeper介紹與環境搭建 40
  1.3.5 ZooKeeper API使用簡介 43
  1.3.6 zkClient的使用 47
  1.3.7 路由和負載均衡的實現 50
  1.4 HTTP服務閘道器 54
  第2章 分散式系統基礎設施 58
  本章主要介紹和解決如下問題:
  分散式快取memcache的使用及分散式策略,包括Hash演算法的選擇。
  常見的分散式系統儲存解決方案,包括MySQL的分散式擴充套件、HBase的API及使用場景、Redis的使用等。
  如何使用分散式訊息系統ActiveMQ來降低系統之間的耦合度,以及進行應用間的通訊。
  垂直化的搜尋引擎在分散式系統中的使用,包括搜尋引擎的基本原理、Lucene詳細的使用介紹,以及基於Lucene的開源搜尋引擎工具Solr的使用。
  2.1 分散式快取 60
  2.1.1 memcache簡介及安裝 60
  2.1.2 memcache API與分散式 64
  2.1.3 分散式session 69
  2.2 持久化儲存 71
  2.2.1 MySQL擴充套件 72
  2.2.2 HBase 80
  2.2.3 Redis 91
  2.3 訊息系統 95
  2.3.1 ActiveMQ & JMS 96
  2.4 垂直化搜尋引擎 104
  2.4.1 Lucene簡介 105
  2.4.2 Lucene的使用 108
  2.4.3 Solr 119
  2.5 其他基礎設施 125
  第3章 網際網路安全架構 126
  本章主要介紹和解決如下問題:
  常見的Web攻擊手段和防禦方法,如XSS、CRSF、SQL注入等。
  常見的一些安全演算法,如數字摘要、對稱加密、非對稱加密、數字簽名、數字證書等。
  如何採用摘要認證方式防止資訊篡改、通過數字簽名驗證通訊雙方的合法性,以及通過HTTPS協議保障通訊過程中資料不被第三方監聽和截獲。
  在開放平臺體系下,OAuth協議如何保障ISV對資料的訪問是經過授權的合法行為。
  3.1 常見的Web攻擊手段 128
  3.1.1 XSS攻擊 128
  3.1.2 CRSF攻擊 130
  3.1.3 SQL注入攻擊 133
  3.1.4 檔案上傳漏洞 139
  3.1.5 DDoS攻擊 146
  3.1.6 其他攻擊手段 149
  3.2 常用的安全演算法 149
  3.2.1 數字摘要 149
  3.2.2 對稱加密演算法 155
  3.2.3 非對稱加密演算法 158
  3.2.4 數字簽名 162
  3.2.5 數字證書 166
  3.3 摘要認證 185
  3.3.1 為什麼需要認證 185
  3.3.2 摘要認證的原理 187
  3.3.3 摘要認證的實現 188
  3.4 簽名認證 192
  3.4.1 簽名認證的原理 192
  3.4.2 簽名認證的實現 193
  3.5 HTTPS協議 200
  3.5.1 HTTPS協議原理 200
  3.5.2 SSL/TLS 201
  3.5.3 部署HTTPS Web 208
  3.6 OAuth協議 215
  3.6.1 OAuth的介紹 215
  3.6.2 OAuth授權過程 216
  第4章 系統穩定性 218
  本章主要介紹和解決如下問題:
  常用的線上日誌分析命令的使用和日誌分析指令碼的編寫,如cat、grep、wc、less等命令的使用,以及awk、shell指令碼的編寫。
  如何進行叢集的監控,包括監控指標的定義、心跳檢測、容量評估等。
  如何保障高併發系統的穩定執行,如採用流量控制、依賴管理、服務分級、開關等策略,以及介紹如何設計高併發系統。
  如何優化應用的效能,包括前端優化、Java程式優化、資料庫查詢優化等。
  如何進行Java應用故障的線上排查,包括一系列排查工具的使用,以及一些實際案例的介紹等。
  4.1 線上日誌分析 220
  4.1.1 日誌分析常用命令 220
  4.1.2 日誌分析指令碼 230
  4.2 叢集監控 239
  4.2.1 監控指標 239
  4.2.2 心跳檢測 247
  4.2.3 容量評估及應用水位 252
  4.3 流量控制 255
  4.3.1 流量控制實施 255
  4.3.2 服務穩定性 260
  4.3.3 高併發系統設計 265
  4.4 效能優化 277
  4.4.1 如何尋找效能瓶頸 277
  4.4.2 效能測試工具 285
  4.4.3 效能優化措施 292
  4.5 Java應用故障的排查 314
  4.5.1 常用的工具 314
  4.5.2 典型案例分析 331
  第5章 資料分析 337
  本章主要介紹和解決如下問題:
  分散式系統中日誌收集系統的架構。
  如何通過Storm進行實時的流式資料分析。
  如何通過Hadoop進行離線資料分析,通過Hive建立資料倉庫。
  如何將關係型資料庫中儲存的資料匯入HDFS,以及從HDFS中將資料匯入關係型資料庫。
  如何將分析好的資料通過圖形展示給使用者。
  5.1 日誌收集 339
  5.1.1 inotify機制 339
  5.1.2 ActiveMQ-CPP 343
  5.1.3 架構和儲存 359
  5.1.4 Chukwa 362
  5.2 離線資料分析 369
  5.2.1 Hadoop專案簡介 370
  5.2.2 Hadoop環境搭建 374
  5.2.3 MapReduce編寫 384
  5.2.4 Hive使用 389
  5.3 流式資料分析 403
  5.3.1 Storm的介紹 404
  5.3.2 安裝部署Storm 407
  5.3.3 Storm的使用 418
  5.4 資料同步 422
  5.4.1 離線資料同步 423
  5.4.2 實時資料同步 429
  5.5 資料報表 431
  5.5.1 資料報表能提供什麼 431
  5.5.2 報表工具Highcharts 432
  參考文獻 445

相關推薦

大型分散式網站架構設計實踐pdf

第1章 面向服務的體系架構(SOA) 1   本章主要介紹和解決以下問題,這些也是全書的基礎:   HTTP協議的工作方式與HTTP網路協議棧的結構。   如何實現基於HTTP協議和TCP協議的RPC呼叫,它們之間有何差別,分別適應何種場景。   如何實現服務的動態註冊和路由,以及軟負載均衡的實現。   1

讀書筆記:大型分散式網站架構設計實踐(5)

5 資料分析 隨著網際網路行業的深入發展,資料的量級呈指數級增長。而資料是非常重要的資訊,對資料進行收集和分析是一直在做的事情。當大資料時代來臨之後,相應地也產生了一些新的資料收集、分析的工具。 5.1 日誌收集 對於線上執行的系統來說,每天都會產生大量日誌資訊,需要對這些日

讀書筆記:大型分散式網站架構設計實踐(1)

原計劃花一年半時間看完十二本書,目錄如下: (1)大型分散式網站架構設計與實踐(陳康賢,電子工業出版社) (2)大型網站系統與Java中介軟體實踐(曾憲傑,電子工業出版社) (3)Java併發程式設計實戰(童雲蘭等譯,機械工業出版社) (4)Java併發

讀書筆記:大型分散式網站架構設計實踐(2)

2 分散式系統基礎設施 一個大型、成熟的分散式系統的背後,往往會涉及眾多的支撐系統,也即所謂的分散式系統的基礎設施,如第一章介紹過的分散式協作及配置管理系統Zookeeper,還有本章將要介紹的分散式快取系統、持久化儲存系統、分散式訊息系統、搜尋引擎,另外還有C

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

一、面向服務的體系架構SOA 1、RPC:遠端過程呼叫 2、OutputStream中直接寫入一個int型別,會擷取其低8位,丟棄其高24位 3、HTTP請求與響應過程: 1)瀏覽器根據所使用的http協議,解析出url對應的域名 2)通過DNS域名解析,查詢出該域名對應的

大型分散式網站架構設計實踐1

第1章 面向服務的體系架構(SOA) 分散式應用架構的演變:單一應用架構--->垂直應用架構----->分散式應用架構 1.1 基於TCP協議的RPC 1.1.1 RPC名詞解釋 1、RPC:remote process call,遠端過程呼叫,有RMI、WebService等諸多成熟的方案2、如

網易考拉規則引擎平臺架構設計實踐

此文已由作者肖凡授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 背景 考拉安全部技術這塊目前主要負責兩塊業務:一個是內審,主要是通過敏感日誌管理平臺蒐集考拉所有後臺系統的操作日誌,資料匯入到es後,結合storm進行實時計算,主要有行為查詢、資料監控、事件追溯、風險大盤等功能;一個是

輕鬆監控上萬臺伺服器:企業運維監控平臺架構設計實踐指南

一、Cacti/Nagios/Zabbix/centreon/Ganglia之抉擇 1、cacti Cacti是一套基於PHP,MySQL,SNMP及RRDTool開發的網路流量監測圖形分析工具。 簡單的說Cacti 就是一個PHP 程式。它通過使用SNMP 協議獲取遠端網路裝置和相關資訊,

大型分散式網站架構技術總結

本文是學習大型分散式網站架構的技術總結。對架構一個高效能,高可用,可伸縮,可擴充套件的分散式網站進行了概要性描述,並給出一個架構參考。一部分為讀書筆記,一部分是個人經驗總結。對大型分散式網站架構有很好的參考價值。(如果感覺對大家有幫助,請幫忙點推薦,謝謝。本部落格會逐步推出一系列的關於大型分散式網站架構,設

分散式事物的設計實踐

分散式事物設計與實踐 資料一致性定義 任何人 任何時間 任何地點 任何接入方式 任何服務 資料都是一致的 資料不一致產生的原因 資料分散在多處 多個DB DB和快取 二手交易平臺案例 使用者,交易,商品等功能 分散式事物產生的原因 剛開始是一個單體程序 經過演變,

分散式服務架構:原理 設計實踐(讀書總結)

文章目錄 1. 分散式微服務架構設計原理 1.1 從傳統的單體架構到到服務化架構 1.2 從服務化到微服務 1.3 微服務架構的核心要點和實現原理 1.4 Java平臺微服務架構的專案組織形式 1.5

Visula Basic程序設計理論實踐pdf

實驗 http ria 文字 blog 本科 title 計算機 div 下載地址:網盤下載 visual basic是國內外流行的程序設計語言之一。visual basic程序設計是比較理想的學習程序設計的第一門課程。本書主要涉及visual basic程序設計概述,程

架構分散式追蹤系統設計實現

分散式系統為什麼需要 Tracing?   先介紹一個概念:分散式跟蹤,或分散式追蹤。   電商平臺由數以百計的分散式服務構成,每一個請求路由過來後,會經過多個業務系統並留下足跡,併產生對各種Cache或DB的訪問,但是這些分散的資料對於問題排查,或是流程優化都幫助有限。

大型網站架構設計資料

資料內容:     第01天 大型Web構架設計        第二集 網站大資料儲存.wmv        第三集 網站加速技術.wmv &nbs

分散式服務框架原理實踐李林鋒著》pdf附網盤下載連結送給還在迷茫的你

Detect languageAfrikaansAlbanianAmharicArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chines

高效能網站架構設計之快取篇(1)- Redis的安裝使用

一、什麼 Redis REmote DIctionary Server,簡稱 Redis,是一個類似於Memcached的Key-Value儲存系統。相比Memcached,它支援更豐富的資料結構,包括string(字串)、list(連結串列)、set(集合)、zset(sorted set --有序集合)

高併發的大型網站架構設計

最近在學習大型網站的架構設計,便想把學習過程中的一些東西總結記錄下來,以便複習和鞏固提高。先來看看大型網站架構圖: 從左邊開始,先是CDN伺服器和反向代理伺服器,都用於快取一些使用者需要請求的資源。兩者的區別在於CDN部署在網路提供商的機房,使用者可以就近

ActiveMQ架構設計最佳實踐

ActiveMQ是最常用、特性最豐富的訊息中介軟體,通常用於訊息非同步通訊、呼叫解耦等多種場景,是JMS規範的實現者之一。 一、架構設計概要     ActiveMQ提供兩種可供實施的架構模型:“M-S”和“network bridge”;其中“M-S”是HA方案,“

大型網站架構設計

網站架構的演化1,原始時代,一臺伺服器解決所有,經典的LAMP,廉價伺服器+開源軟體,網站就建起來了。→ 等到訪問量越來越大,資料儲存空間吃緊了,所以。。。2,使用三臺伺服器,應用,檔案,資料庫分開。應用伺服器加CPU,檔案伺服器加大容量硬碟,資料庫伺服器用更貴更快的硬碟。→ 80%的訪問集中在20%的資料上

宜信開源|分散式任務排程平臺SIA-TASK的架構設計執行流程

  一、分散式任務排程的背景 無論是網際網路應用或者企業級應用,都充斥著大量的批處理任務。我們常常需要一些任務排程系統來幫助解決問題。隨著微服務化架構的逐步演進,單體架構逐漸演變為分散式、微服務架構。在此背景下,很多原先的任務排程平臺已經不能滿足業務系統的需求,於是出現了一些基於分散式的任務排程