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