企業互聯網架構原理與實踐

富亞軍

  • 出版商: 機械工業
  • 出版日期: 2021-05-01
  • 定價: $714
  • 售價: 8.5$607
  • 語言: 簡體中文
  • 頁數: 304
  • 裝訂: 平裝
  • ISBN: 7111678265
  • ISBN-13: 9787111678267
  • 立即出貨

買這商品的人也買了...

商品描述

本書主要講解互聯網架構的設計初衷、原理和模式。
全書介紹了互聯網架構的演變過程與分層、分割、分片、緩存、並行、異步、隔離、容錯、安全、
治理等設計模式的應用場景和作用,還介紹了前端應用層、接入層、服務層、服務治理、分佈式鎖、分佈式ID、
分佈式事務、分佈式消息隊列、分佈式緩存、數據持久化以及DevOps等技術的組成結構、運行原理和應用方案。

本書使用的是Java語言相關的技術生態,適合希望掌握互聯網架構的IT開發工程師和架構師閱讀。
通過本書,讀者可以對互聯網分佈式架構有較全面的了解。

作者簡介

9787111677314富亞軍,HPE資深架構師。
從事企業級軟件設計和項目管理20多年,組織和設計開發了多個大型金融系統,具有處理高並發、大流量互聯網業務的一線經驗。

目錄大綱


前言
第1章 概述1
1.1 互聯網業務特點1
1.2 互聯網架構思維2
1.3 互聯網架構目標與度量2
1.4 互聯網架構方法論4
1.4.1 CAP模型4
1.4.2 AKF Scale Cube擴展立方體8
1.5 互聯網核心架構的演變9
1.5.1 Monolith單體架構10
1.5.2 Microservice微服務架構11
1.5.3 Microservice與SOA14
1.5.4 Servicemesh服務網格架構16
1.5.5 Cloud Native雲原生架構19

第2章 互聯網架構設計模式23
2.1 架構設計的切入點23
2.2 互聯網架構的典型模式23
2.2.1 分層23
2.2.2 分割25
2.2.3 分片26
2.2.4 緩存27
2.2.5 並行27
2.2.6 異步28
2.2.7 隔離29
2.2.8 容錯32
2.2.9 安全33
2.2.10 治理33

第3章 前端架構35
3.1 前端應用35
3.2 前端開發模式35
3.2.1 抽象DOM模式35
3.2.2 MVC模式36
3.2.3 MVP模式36
3.2.4 MVVM模式37
3.2.5 Virtual DOM38
3.2.6 組件化編程39
3.3 響應式網站設計40
3.3.1 服務端響應與客戶端響應41
3.3.2 響應式JS41
3.3.3 響應式CSS41
3.3.4 響應式圖片41
3.3.5 響應式佈局41
3.4 單頁面架構43
3.4.1 單頁面應用的定義43
3.4.2 SPA的優缺點43
3.4.3 服務端渲染44
3.4.4 初始頁面優化44
3.4.5 地址堆棧管理45
3.5 微前端架構45
3.5.1 微前端的定義45
3.5.2 微前端的作用45
3.5.3 技術發展路線45
3.5.4 微前端的特點46
3.5.5 微前端的技術架構46
3.6 移動App開發47
3.6.1 Native App47
3.6.2 Hybrid App47
3.7 公眾號、小程序與快應用的開發49
3.7.1 公眾號開發49
3.7.2 小程序開發49
3.7.3 快應用開發50
3.7.4 多端開發框架50
3.8 服務於前端的後端架構BFF51
3.8.1 BFF的用途51
3.8.2 前後端同構51
3.8.3 BFF與Gateway52
3.9 前端優化52
3.9.1 前端性能優化52
3.9.2 搜索引擎優化55
3.9.3 網站運營優化55

第4章 接入架構57
4.1 整體接入架構57
4.2 DNS解析與負載均衡57
4.2.1 DNS域名解析57
4.2.2 DNS負載均衡58
4.3 CDN內容分發網絡59
4.3.1 CDN的作用59
4.3.2 CDN的組成結構60
4.3.3 內容加速原理60
4.3.4 CDN的功能架構61
4.4 反向代理62
4.4.1 正向代理與反向代理62
4.4.2 負載均衡63
4.4.3 Nginx應用架構70
4.5 服務網關75
4.5.1 服務網關與微服務75
4.5.2 服務網關的功能架構76
4.5.3 服務網關的技術架構80
4.5.4 開源服務網關80
4.6 內部系統集成89

第5章 服務架構91
5.1 服務端架構生態91
5.2 Spring Cloud91
5.2.1 Spring Cloud總體架構91
5.2.2 Spring Cloud核心構成與原理92
5.3 阿里的微服務中間件Dubbo96
5.3.1 Dubbo整體架構96
5.3.2 Dubbo關聯的中間件和技術98
5.3.3 Dubbo RPC調用過程104
5.3.4 Dubbo面臨的挑戰110
5.4 服務網格中間件Istio111
5.4.1 Istio總體架構111
5.4.2 Istio Envoy114
5.4.3 Istio Pilot115
5.4.4 Istio Mixer117
5.4.5 Istio Citadel118
5.4.6 跨集群服務治理119
5.4.7 Istio面臨的挑戰120

第6章 服務治理121
6.1 配置中心121
6.1.1 配置中心的功能架構121
6.1.2 配置中心的技術架構121
6.1.3 百度的配置中心Disconf123
6.1.4 攜程的配置中心Apollo124
6.1.5 Spring Cloud Config126
6.2 流量控制127
6.2.1 限流算法127
6.2.2 Spring Cloud流量控制中間件Hystrix129
6.2.3 阿里的流量控制中間件sentinel135
6.2.4 新一代流量控制中間件Resilience4j141
6.3 服務追踪146
6.3.1 服務調用過程與追踪要素147
6.3.2 服務追踪的系統組成149
6.3.3 服務追踪中間件Zipkin150

第7章 分佈式處理152
7.1 分佈式鎖152
7.1.1 分佈式鎖的設計目標152
7.1.2 分佈式鎖的技術架構152
7.2 分佈式ID155
7.2.1 分佈式ID的設計目標155
7.2.2 分佈式ID的技術架構156
7.3 高性能有界隊列Disruptor161
7.3.1 Disruptor的設計目標161
7.3.2 Disruptor的主體結構163

第8章 分佈式事務165
8.1 分佈式事務的技術背景165
8.2 基於分階段提交的事務165
8.2.1 兩階段提交166
8.2.2 三階段提交167
8.3 基於補償的事務168
8.3.1 Saga模式169
8.3.2 *努力通知模式173
8.3.3 TCC模式173
8.4 基於可靠消息隊列的事務176
8.5 最終一致性對賬處理177
8.6 阿里的分佈式事務中間件Seata179
8.6.1 Seata AT模式的組成架構179
8.6.2 Seata AT模式的運行原理180
8.6.3 Seata AT模式的隔離機制183
8.6.4 Seata AT模式的特點186
8.7 華為的分佈式事務中間件Servicecomb-Saga186
8.7.1 組成架構186
8.7.2 運行原理187

第9章 分佈式消息隊列190
9.1 消息隊列的應用場景190
9.2 消息傳遞技術192
9.2.1 管道和過濾器模式192
9.2.2 消息通道193
9.2.3 消息193
9.2.4 消息路由196
9.2.5 消息轉換199
9.2.6 消息端點199
9.2.7 消息管理201
9.3 消息總線202
9.3.1 請求應答模式203
9.3.2 消息總線架構207
9.4 阿里的消息中間件RocketMQ209
9.4.1 整體結構209
9.4.2 消息存儲212
9.4.3 集群結構214
9.4.4 負載均衡218
9.4.5 順序消息221
9.4.6 重複消息222
9.4.7 消費模式222
9.4.8 消息提交223
9.4.9 消息消費223
9.4.10 過濾查詢224
9.4.11 流量控制225
9.4.12 與消息中間件Kafka的對比226
9.5 Spring Cloud消息傳遞中間件227
9.5.1 Spring Integration227
9.5.2 Spring Cloud Stream232
9.5.3 Spring Cloud Bus237

第10章 分佈式緩存240
10.1 緩存概述240
10.2 緩存應用架構240
10.2.1 緩存設計241
10.2.2 緩存更新242
10.2.3 緩存雪崩242
10.2.4 緩存穿透242
10.2.5 緩存擊穿244
10.2.6 緩存預熱244
10.2.7 熱點拆分244
10.3 分佈式緩存中間件Redis245
10.3.1 Redis介紹245
10.3.2 Redis集群結構250

第11章 數據持久化255
11.1 數據架構255
11.2 存儲技術256
11.2.1 RAID256
11.2.2 存儲架構259
11.2.3 OpenStack Swift262
11.3 關係數據庫的應用架構266
11.3.1 讀寫分離架構266
11.3.2 冷熱分離架構267
11.3.3 分庫分錶架構267
11.3.4 MySQL高可用架構274

第12章 DevOps279
12.1 DevOps的概念和工具279
12.2 容器與環境280
12.2.1 環境管理280
12.2.2 容器管理282
12.3 持續協作284
12.4 開發管理284
12.4.1 開發協作的主要工具284
12.4.2 Mock技術285
12.5 發布管理285
12.5.1 管理控制台286
12.5.2 自動化部署286
12.5.3 灰度發布287
12.6 測試管理287
12.7 運維管理289
12.7.1 系統監控289
12.7.2 日誌分析291