《Cloud Native分散式架構原理與實踐 》是2019年北京大學出版社出版的圖書。
基本介紹
- 中文名:Cloud Native分散式架構原理與實踐
- 作者:柳偉衛
- 出版時間:2019年
- 出版社:北京大學出版社
- ISBN:9787301300893
- 類別:程式設計
- 開本:16 開
- 裝幀:平裝
內容簡介,圖書目錄,作者簡介,
內容簡介
Cloud Native(雲原生)是以雲架構為優先的套用開發模式。目前,越來越多的企業已經開始大規模地“擁抱雲”——在雲環境下開發套用、部署套用及發布套用等。未來,越來越多的開發者也將採用 Cloud Native 來開發套用。本書是國內Java 領域關於 Cloud Native 的著作。
《Cloud Native分散式架構原理與實踐》全面講解了基於 Cloud Native 來構建套用需要考慮的設計原則和實現方式,涵蓋REST 設計、測試、服務註冊、服務發現、安全、數據管理、訊息通信、批處理、任務調度、運營、容器部署、持續發布等方面的 Cloud Native 知識。同時,書中所講解的技術方案皆為業界主流的技術,極具前瞻性。*後,本書除了講解 Cloud Native 的理論知識,還會在每個知識點上輔以大量的代碼案例,使理論可以聯繫實踐,具備更強的可操作性。
本書主要面向對分散式系統、微服務、Cloud Native 開發感興趣的計算機專業的學生、軟體開發人員和系統架構師。
圖書目錄
第1章Cloud Native 概述
1.1當今軟體發展的現狀
1.1.1軟體需求的發展
1.1.2開發方式的巨變
1.1.3雲是大勢所趨
1.2Cloud Native 的特性
1.2.1以云為基礎架構
1.2.2雲服務
1.2.3無服務
1.2.4可擴展
1.2.5高可用
1.2.6敏捷
1.2.7雲優先
1.312-Factor
1.3.1基準代碼
1.3.2依賴
1.3.3配置
1.3.4後端服務
1.3.5構建、發布和運行
1.3.6進程
1.3.7連線埠綁定
1.3.8並發
1.3.9易處理
1.3.10開發環境與線上環境等價
1.3.11日誌
1.3.12管理進程
1.4成功案例
1.4.1Amazon
1.4.2 Netflix
1.4.3淘寶網
1.5Cloud Native 與微服務
1.5.1微服務概述
1.5.2從單塊架構向微服務演進
1.5.3Cloud Native 與微服務部署
1.6總結
1.6.1Cloud Native 的優點
1.6.2Cloud Native 不是“銀彈”
1.6.3面臨的挑戰
第2章REST API
2.1REST 概述
2.1.1REST 的定義
2.1.2REST 設計原則
2.2成熟度模型
2.2.1第0級:使用 HTTP 作為傳輸方式
2.2.2第1級:引入了資源的概念
2.2.3第2級:根據語義使用 HTTP 動詞
2.2.4第3級:使用 HATEOAS
2.3Java REST
2.3.1JAX-RS 規範
2.3.2Jersey 框架
2.3.3Apache CXF 框架
2.3.4Spring Web MVC 框架
2.4內容協商
2.4.1二進制數據
2.4.2Google Protocol Buffers 傳輸協定
2.5異常處理
2.5.1HTTP 狀態碼
2.5.2自定義異常信息
2.6API 管理
2.6.1版本化
2.6.2文檔化
2.6.3可視化
2.7客戶端
2.7.1瀏覽器外掛程式
2.7.2JAX-RS 客戶端
2.7.3Spring 客戶端
2.8實戰:開啟第一個微服務
2.8.1初始化一個 Spring Boot 原型
2.8.2用 Gradle 編譯項目
2.8.3探索項目
2.8.4實現第一個服務
第3章Cloud Native 測試
3.1測試概述
3.1.1傳統測試所面臨的問題
3.1.2如何破解測試面臨的問題
3.2測試的類型、範圍和比例
3.2.1測試類型
3.2.2測試範圍
3.2.3測試比例
3.3如何進行微服務的測試
3.3.1微服務的單元測試
3.3.2Mock 與 Stub 的區別
3.3.3微服務的集成測試
3.3.4微服務的系統測試
3.3.5保障代碼覆蓋率
3.4Spring 測試框架
3.4.1Spring TestContext 框架
3.4.2Spring MVC Test 框架
3.4.3Spring Boot Test 框架
第4章服務路由
4.1如何找到服務
4.1.1DNS
4.1.2服務註冊與發現
4.1.3客戶端發現機制
4.1.4服務端發現機制
4.2實戰:實現服務註冊與發現
4.2.1選擇 Eureka的原因
4.2.2集成 Eureka Server
4.2.3集成 Eureka Client
4.2.4服務的註冊與發現
第5章Cloud Native 安全
5.1認證與授權
5.1.1基本認證
5.1.2摘要認證
5.1.3摘要認證的密碼加密
5.1.4通用密碼加密
5.1.5基於散列的令牌方法
5.1.6基於持久化的令牌方法
5.2Java 安全框架
5.2.1Apache Shiro
5.2.2Spring Security
5.2.3Spring Cloud Security
5.3OAuth 2.0 認證
5.3.1OAuth 2.0 的認證原理
5.3.2OAuth 2.0 的核心概念
5.3.3OAuth 2.0 的認證流程
5.4實戰:實現單點登錄
5.4.1項目依賴
5.4.2編碼實現
5.4.3套用配置
5.4.4運行
第6章Cloud Native 數據管理
6.1數據的存儲方式
6.1.1關係型資料庫
6.1.2NoSQL
6.2DDD 與數據建模
6.2.1DDD 概述
6.2.2運用 DDD 進行數據建模
6.3常用數據訪問方式
6.3.1JDBC
6.3.2Spring JDBC
6.3.3JPA
6.4Spring Data
6.4.1Spring Data 概述
6.4.2Spring Data JPA
6.4.3Spring Data Elasticsearch
6.4.4Spring Data Redis
6.4.5Spring Data MongoDB
6.4.6實戰:基於 MongoDB 的檔案伺服器
第7章Cloud Native 訊息通信
7.1訊息通信概述
7.1.1訊息通信的基本概念
7.1.2JMS
7.1.3事件驅動的架構
7.2訊息通信常用模式
7.2.1點對點模式
7.2.2發布—訂閱模式
7.3CQRS
7.3.1CQRS 概述
7.3.2CQRS 的好處
7.3.3實戰:實現 CQRS
7.4Spring Cloud Stream
7.4.1Spring Cloud Stream 概述
7.4.2Spring Cloud Stream 實現發布者
7.4.3Spring Cloud Stream 實現消費者
7.4.4實戰:基於 Spring Cloud Stream 的訊息通信
第8章Cloud Native 批處理
8.1批處理概述
8.1.1需要批處理的原因
8.1.2常用批處理實現方式
8.2JDBC Batch
8.2.1Statement 與 PreparedStatement
8.2.2實戰:使用 JDBC Batch 的例子
8.3Spring 批處理
8.3.1使用 JdbcTemplate 實現批處理
8.3.2批量更新 List
8.3.3多個批次更新
8.4Spring Batch
8.4.1Spring Batch 概述
8.4.2Job
8.4.3JobLauncher
8.4.4JobRepository
8.4.5Step
8.4.6ItemReader
8.4.7ItemWriter
8.4.8ItemProcessor
8.4.9實戰:使用 Spring Batch 的例子
第9章Cloud Native 任務調度
9.1任務執行與調度概述
9.2Spring TaskExecutor
9.2.1TaskExecutor 類型
9.2.2TaskExecutor 套用
9.3Spring TaskScheduler
9.3.1Trigger 接口
9.3.2Trigger 接口的實現
9.4Spring 任務調度及異步執行
9.4.1啟用調度註解
9.4.2@Scheduled 註解
9.4.3@Async 註解
9.4.4@Async 的異常處理
9.4.5命名空間
9.5使用 Quartz Scheduler
9.5.1使用 JobDetailFactoryBean
9.5.2使用 MethodInvokingJobDetailFactoryBean
9.6實戰:基於 Quartz Schedule 的天氣預報系統
9.6.1項目概述
9.6.2後台編碼實現
9.6.3運行
第10章Cloud Native 運營
10.1CAP 理論
10.1.1CAP 理論概述
10.1.2CAP 只能三選二的原因
10.1.3CAP 常見模型
10.1.4CAP 的意義
10.1.5CAP 的發展
10.2服務的熔斷
10.2.1熔斷的意義
10.2.2Hystrix 概述
10.2.3實戰:實現微服務的熔斷機制
10.3代碼管理
10.3.1Git 簡介
10.3.2Git 核心概念
10.3.3Git Flow
10.4日誌管理
10.4.1日誌框架概述
10.4.2分散式下的日誌管理
10.4.3集中化日誌分析
10.4.4實戰:基於 Elastic Stack 的集中化日誌管理
10.5配置管理
10.5.1分散式下的配置管理的痛點
10.5.2集中化配置
10.5.3 Spring Cloud Config
10.5.4實戰:基於 Config 實現的配置中心
10.6套用監控
10.6.1心跳
10.6.2Eureka 監測機制
10.6.3Spring Boot Actuator
10.6.4實戰:基於 Spring Boot Actuator 監測的例子
第11章Cloud Native 持續發布
11.1持續集成與持續交付
11.1.1持續集成概述
11.1.2持續交付與持續部署
11.1.3持續交付與持續部署的意義
11.2持續交付流水線
11.2.1流水線概述
11.2.2構建持續交付流水線
11.2.3構建流水線的工具
11.3微服務的管理與發布
11.3.1兩個比薩的故事
11.3.2DevOps 文化
11.3.3微服務的發布
11.4容器
11.4.1虛擬化技術
11.4.2容器與虛擬機
11.4.3基於容器的持續部署流程
11.4.4實戰:使用 Docker 來構建、運行和發布微服務
11.5發布到雲
11.5.1常用雲服務
11.5.2實戰:發布套用到雲
附錄本書所涉及的技術及相關版本
參考文獻
作者簡介
柳偉衛(waylau),在 IT 公司擔任項目經理、架構師、高級開發顧問等職位,具有多年軟體開發管理及系統架構經驗。負責過多個省、***大型分散式系統的設計與研發,參與了多個大型項目的微服務架構的技術改造,在實際工作中,積累了大量的微服務架構經驗。是 CSDN、 開源中國、雲棲社區等技術社區專家。