企業(yè)互聯(lián)網(wǎng)架構原理與實踐
定 價:119 元
- 作者:富亞軍 著
- 出版時間:2021/5/1
- ISBN:9787111678267
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP393.092.1
- 頁碼:304
- 紙張:膠版紙
- 版次:1
- 開本:16開
本書主要講解互聯(lián)網(wǎng)架構的設計初衷、原理和模式。全書介紹了互聯(lián)網(wǎng)架構的演變過程與分層、分割、分片、緩存、并行、異步、隔離、容錯、安全、治理等設計模式的應用場景和作用,還介紹了前端應用層、接入層、服務層、服務治理、分布式鎖、分布式ID、分布式事務、分布式消息隊列、分布式緩存、數(shù)據(jù)持久化以及DevOps等技術的組成結構、運行原理和應用方案。
本書使用的是Java語言相關的技術生態(tài),適合希望掌握互聯(lián)網(wǎng)架構的IT開發(fā)工程師和架構師閱讀。通過本書,讀者可以對互聯(lián)網(wǎng)分布式架構有較全面的了解。
當前越來越多的業(yè)務使用了公有云。公有云將大型公司應對海量互聯(lián)網(wǎng)流量的經(jīng)驗和措施封裝成產(chǎn)品,降低了復雜度,使IT系統(tǒng)的開發(fā)專注于業(yè)務層面,但很多人也因此沒有了試錯的機會,知其然不知其所以然。另一方面,互聯(lián)網(wǎng)分布式架構更加復雜,組織結構分工更細,很多開發(fā)人員或者架構師在工作中只能關注一點或者一個層次。許多技術人員都非常希望能看到更多介紹架構設計出發(fā)點、原理和機制,講述分布式架構宏觀場景的書籍。
筆者將這幾年遇到的幾個互聯(lián)網(wǎng)業(yè)務的解決思路和方案整理成PPT,一直有總結成書的想法,卻被瑣事所困,無法靜下心來進一步歸納整理,如今終于有了機會。筆者希望能夠盡可能從較高的角度,在每一個系統(tǒng)分層結構中講解原理、實現(xiàn)方案和技術路線。
事情看著容易,做著難,下筆成文時,著實痛苦。作為一本想要描述互聯(lián)網(wǎng)分層架構的書,涉及面廣,還有諸如系統(tǒng)安全、大數(shù)據(jù)、架構實例方面的內容因為時間和精力原因暫未涵蓋。本書內容也難免有見識不到、疏漏之處,敬請指正。
內容組織
本書主要講解互聯(lián)網(wǎng)架構設計的初衷、原理和架構的模式。前兩章簡單介紹了互聯(lián)網(wǎng)架構的目標、架構演變過程與主要設計模式,后續(xù)幾章則按照系統(tǒng)的分層模式,從前端到后端,從開發(fā)到運維,對每一層的主要解決問題、原理、技術路線進行說明。
第1章“概述”,主要介紹互聯(lián)網(wǎng)架構的業(yè)務特點、目標、衡量辦法、方法論和核心架構的演變過程。
第2章“互聯(lián)網(wǎng)架構設計模式”,歸納了互聯(lián)網(wǎng)架構的分層、分割、分片、緩存、并行、異步、隔離、容錯、安全、治理等主要設計模式,并闡述了每種模式的應用場景和作用。
第3章“前端架構”,主要介紹前端的架構模式,包括前端開發(fā)模式的演變過程、響應式網(wǎng)站的設計辦法、單頁面架構、微前端架構、App、公眾號、小程序與快應用的開發(fā)模式、BFF架構以及前端優(yōu)化辦法。
第4章“接入架構”,主要介紹接入層的組成,包括DNS、CDN、反向代理、服務網(wǎng)關以及企業(yè)內部系統(tǒng)集成的架構和實現(xiàn)。
第5章“服務架構”,主要描述微服務架構Spring Cloud和Dubbo以及服務網(wǎng)格架構Istio的組成結構和運行機制。
第6章“服務治理”,介紹常見的服務治理組件,包括配置中心、流量控制、服務追蹤等組件的構成和原理,涉及Apollo、Disconf、Spring Cloud Config、Hystrix、sentinel、Resilience4j、Zipkin等中間件。
第7章“分布式處理”,補充介紹分布式處理中的必備組件,包括分布式鎖、分布式ID、高性能有界隊列Disruptor的設計目標和技術架構。
第8章“分布式事務”,主要描述分階段提交、補償?shù)确植际绞聞漳J,介紹了分布式事務的最終一致性解決方案以及Seata和Servicecomb-Saga兩種開源分布式事務中間件。
第9章“分布式消息隊列”,介紹消息隊列解決的問題和應用場景,消息傳遞技術的應用模式,消息總線的用途和架構,同時還介紹了RocketMQ的組成和原理,以及Spring Cloud消息傳遞領域的三個組成部件Spring Integration、Spring Cloud Stream和Spring Cloud Bus。
第10章“分布式緩存”,介紹緩存的分類、應用架構和應用緩存時常見的問題和解決方案,也介紹了Redis緩存中間件的原理和集群結構。
第11章“數(shù)據(jù)持久化”,介紹互聯(lián)網(wǎng)分布式系統(tǒng)的整體數(shù)據(jù)架構,Raid磁盤陣列和DAS、NAS、SAN、OSS等存儲技術,Swift OSS的運行機制,關系數(shù)據(jù)庫的讀寫分離、冷熱分離、分庫分表和高可用方案。
第12章“DevOps”,主要介紹DevOps的含義、工具和生態(tài),并講解了包括環(huán)境、協(xié)作、開發(fā)、發(fā)布、測試、運維等DevOps基礎環(huán)節(jié)涉及的工具、技術和集成方法。
致謝
感謝我的家人、朋友和同事們,謝謝你們的支持和建議。本書的出版尤其要感謝機械工業(yè)出版社的車忱編輯,車老師在書籍選題、章節(jié)編排以及內容校閱等方面給了我非常多的建議和幫助。
富亞軍,HPE資深架構師。從事企業(yè)級軟件設計和項目管理20多年,組織和設計開發(fā)了多個大型金融系統(tǒng),具有處理高并發(fā)、大流量互聯(lián)網(wǎng)業(yè)務的一線經(jīng)驗。
序
前言
第1章 概述1
11 互聯(lián)網(wǎng)業(yè)務特點1
12 互聯(lián)網(wǎng)架構思維2
13 互聯(lián)網(wǎng)架構目標與度量2
14 互聯(lián)網(wǎng)架構方法論4
141 CAP模型4
142 AKF Scale Cube擴展立方體8
15 互聯(lián)網(wǎng)核心架構的演變9
151 Monolith單體架構10
152 Microservice微服務架構11
153 Microservice與SOA14
154 Servicemesh服務網(wǎng)格架構16
155 Cloud Native云原生架構19
第2章 互聯(lián)網(wǎng)架構設計模式23
21 架構設計的切入點23
22 互聯(lián)網(wǎng)架構的典型模式23
221 分層23
222 分割25
223 分片26
224 緩存27
225 并行27
226 異步28
227 隔離29
228 容錯32
229 安全33
2210 治理33
第3章 前端架構35
31 前端應用35
32 前端開發(fā)模式35
321 抽象DOM模式35
322 MVC模式36
323 MVP模式36
324 MVVM模式37
325 Virtual DOM38
326 組件化編程39
33 響應式網(wǎng)站設計40
331 服務端響應與客戶端響應41
332 響應式JS41
333 響應式CSS41
334 響應式圖片41
335 響應式布局41
34 單頁面架構43
341 單頁面應用的定義43
342 SPA的優(yōu)缺點43
343 服務端渲染44
344 初始頁面優(yōu)化44
345 地址堆棧管理45
35 微前端架構45
351 微前端的定義45
352 微前端的作用45
353 技術發(fā)展路線45
354 微前端的特點46
355 微前端的技術架構46
36 移動App開發(fā)47
361 Native App47
362 Hybrid App47
37 公眾號、小程序與快應用的開發(fā)49
371 公眾號開發(fā)49
372 小程序開發(fā)49
373 快應用開發(fā)50
374 多端開發(fā)框架50
38 服務于前端的后端架構BFF51
381 BFF的用途51
382 前后端同構51
383 BFF與Gateway52
39 前端優(yōu)化52
391 前端性能優(yōu)化52
392 搜索引擎優(yōu)化55
393 網(wǎng)站運營優(yōu)化55
第4章 接入架構57
41 整體接入架構57
42 DNS解析與負載均衡57
421 DNS域名解析57
422 DNS負載均衡58
43 CDN內容分發(fā)網(wǎng)絡59
431 CDN的作用59
432 CDN的組成結構60
433 內容加速原理60
434 CDN的功能架構61
44 反向代理62
441 正向代理與反向代理62
442 負載均衡63
443 Nginx應用架構70
45 服務網(wǎng)關75
451 服務網(wǎng)關與微服務75
452 服務網(wǎng)關的功能架構76
453 服務網(wǎng)關的技術架構80
454 開源服務網(wǎng)關80
46 內部系統(tǒng)集成89
第5章 服務架構91
51 服務端架構生態(tài)91
52 Spring Cloud91
521 Spring Cloud總體架構91
522 Spring Cloud核心構成與原理92
53 阿里的微服務中間件Dubbo96
531 Dubbo整體架構96
532 Dubbo關聯(lián)的中間件和技術98
533 Dubbo RPC調用過程104
534 Dubbo面臨的挑戰(zhàn)110
54 服務網(wǎng)格中間件Istio111
541 Istio總體架構111
542 Istio Envoy114
543 Istio Pilot115
544 Istio Mixer117
545 Istio Citadel118
546 跨集群服務治理119
547 Istio面臨的挑戰(zhàn)120
第6章 服務治理121
61 配置中心121
611 配置中心的功能架構121
612 配置中心的技術架構121
613 百度的配置中心Disconf123
614 攜程的配置中心Apollo124
615 Spring Cloud Config126
62 流量控制127
621 限流算法127
622 Spring Cloud流量控制中間件Hystrix129
623 阿里的流量控制中間件sentinel135
624 新一代流量控制中間件Resilience4j141
63 服務追蹤146
631 服務調用過程與追蹤要素147
632 服務追蹤的系統(tǒng)組成149
633 服務追蹤中間件Zipkin150
第7章 分布式處理152
71 分布式鎖152
711 分布式鎖的設計目標152
712 分布式鎖的技術架構152
72 分布式ID155
721 分布式ID的設計目標155
722 分布式ID的技術架構156
73 高性能有界隊列Disruptor161
731 Disruptor的設計目標161
732 Disruptor的主體結構163
第8章 分布式事務165
81 分布式事務的技術背景165
82 基于分階段提交的事務165
821 兩階段提交166
822 三階段提交167
83 基于補償?shù)氖聞?68
831 Saga模式169
832 最大努力通知模式173
833 TCC模式173
84 基于可靠消息隊列的事務176
85 最終一致性對賬處理177
86 阿里的分布式事務中間件Seata179
861 Seata AT模式的組成架構179
862 Seata AT模式的運行原理180
863 Seata AT模式的隔離機制183
864 Seata AT模式的特點186
87 華為的分布式事務中間件Servicecomb-Saga186
871 組成架構186
872 運行原理187
第9章 分布式消息隊列190
91 消息隊列的應用場景190
92 消息傳遞技術192
921 管道和過濾器模式192
922 消息通道193
923 消息193
924 消息路由196
925 消息轉換199
926 消息端點199
927 消息管理201
93 消息總線202
931 請求應答模式203
932 消息總線架構207
94 阿里的消息中間件RocketMQ209
941 整體結