本書以幽默風趣的語言生動地講述了微服務,將微服務相關的理論知識、技術實現和項目實踐一網打盡。
解密微服務,Spring Boot Spring Cloud 技術實踐。
基本介紹
- 書名:微服務那些事兒
- 作者:紀曉峰
- ISBN:9787121311420
- 類別:圖書>計算機/網路>計算機理論
- 頁數:206
- 定價:65元
- 出版社:電子工業出版社
- 出版時間:2017年04月01日
- 裝幀:平裝
- 開本:16開
前言,為什麼寫這本書?,目 錄,
前言
當萊斯特城獲得15/16賽季英超冠軍的時刻,我毫不猶豫地亮出了自己隱藏了30年的狐狸城球迷身份。
隨著微服務在國內的炙手可熱,很多人亮出了隱藏多年的微服務專家身份。
然而有一種專家就是那種告訴你1000種談戀愛的辦法,但自己從來沒有談過戀愛的人。
他們講講亞馬遜的訂單,談談Uber的服務,然而就是沒有自己做的。
不同於這些專家,筆者曾是AC微服務方面的諮詢,曾長期供職於HP,具有豐富的架構設計和實戰經驗,先後參與過多個微服務項目,對微服務有著較為深刻的理解。
微服務的概念提出已經有幾年了,相對於傳統技術架構來說微服務不僅僅是新一代架構,更是具有劃時代意義的架構。目前國外一些大型網際網路公司如亞馬遜、Netflix、Spotify和一些傳統公司如沃爾瑪都已經採用微服務架構並且實際效果非常好。
與此同時,微服務架構在國內一直不溫不火,大多呈觀望態勢,直到容器技術的出現,為微服務架構的落地完成了最後一塊拼圖,國內IT公司對微服務架構的熱情才大增,從各種微服務培訓大會一票難求可見一斑。
為什麼寫這本書?
國內很多公司已經開始或正在著手準備使用微服務架構,與市場需求暴增對應的是巨大的人才缺口,市面上相關材料、書籍的信息量很小,且大多偏技術實現,既缺少理論的指導又缺少項目實踐,無法滿足最終用戶的需求。最重要的是還沒有介紹Spring Boot Spring Cloud的書問世,它可是當前世界上最主流的微服務技術實現,這多少影響了微服務在國內的發展。
技術類書籍大多有一個普遍的問題,就是枯燥乏味、晦澀難懂。不要說非技術人員看不懂,連技術出身的人看著也吃力,更別提那些翻譯過來的技術書籍。
究其原因是因為描述技術時用的語言是技術語言,而不是生活語言,自然難以理解。
技術不是玄學,技術應該是面向生活的。
所以本書會通過大量生活中的例子對微服務架構及原理進行解釋,有趣易懂,可以說是接地氣的一本技術書籍。
本書內容都是從實際出發,均來自本人常年在前方發回的“報導”,這裡有客戶最關心的話題,如何拆分服務、如何使用微服務等。本書有針對性地對這些問題進行了解答,同時提供了一套完整的理論體系,讓讀者知其然知其所以然。
一本書是一個作者智慧的結晶、知識的沉澱、思維體系的形成。
做人呢,開心最重要。
寫書呢,態度最重要。
本人能力一般、水平有限,如有不足之處,歡迎“拍磚”。如果通過這本書能讓更多人了解和更好地使用微服務,那么我的目的就達到了。
目 錄
第一部分 微服務解惑篇
第1章 微服務架構 2
1.1 不微你就OUT了 2
1.2 產生背景 3
1.2.1 時代的召喚 3
1.2.2 容器神助攻 4
1.2.3 微服務的進擊 4
1.3 微服務的標籤 5
1.3.1 單一職責 6
1.3.2 微 6
1.3.3 面向服務 7
1.3.4 自治 8
1.3.5 易擴展 9
1.3.6 流程化 10
1.4 實力碾壓 11
1.4.1 組件化 11
1.4.2 快速 13
1.4.3 可復用 13
1.4.4 機動靈活 13
1.5 不要奶我 14
1.5.1 不足 14
1.5.2 挑戰 15
1.5.3 小結 16
1.6 本章小結 17
第2章 為何選擇微服務 18
2.1 傳統架構的病 18
2.1.1 中年危機 18
2.1.2 寶寶心裡苦 19
2.2 微服務有藥 21
2.2.1 諱疾忌醫 21
2.2.2 朋友聽說過安利么 22
2.2.3 沙盤演練看效果 22
2.3 微服務的價值 23
2.3.1 資源價值 24
2.3.2 業務價值 24
2.3.3 技術價值 24
2.3.4 用戶價值 25
2.3.5 未來價值 25
2.3.6 小結 26
2.4 定個小目標 26
2.4.1 持續交付 26
2.4.2 業務敏捷 26
2.4.3 獨立演進 27
2.4.4 高可用 27
2.4.5 高性能 27
2.4.6 站在雲端 28
2.5 別人家的公司 28
2.6 來不及解釋快上車 29
第3章 我拆我拆我拆拆拆 30
3.1 拆還是不拆 30
3.2 如何拆 32
3.2.1 庖丁解牛 32
3.2.2 數據模型和業務模型 33
3.2.3 金字塔結構圖 33
3.2.4 關鍵指標 33
3.3 粒度 35
3.3.1 五筆字根 36
3.3.2 被遺忘的字典師傅 37
3.3.3 小結 37
3.4 邊界 37
3.5 本章小結 38
第4章 如何使用微服務 39
4.1 如何規劃 39
4.2 微服務重構 42
4.2.1 影響因素 42
4.2.2 重構原則 43
4.2.3 重構方法 44
4.3 本章小結 45
第5章 微服務的朋友圈 46
5.1 好朋友容器 46
5.1.1 容器的來歷 46
5.1.2 容器的好處 47
5.1.3 小結 49
5.2 天生一對DevOps 49
5.2.1 DevOps是什麼 49
5.2.2 為什麼採用DevOps 50
5.2.3 小結 51
5.3 SOA是誰 51
5.3.1 接著忽悠 52
5.3.2 SOA是個什麼鬼 52
5.3.3 小結 53
第二部分 技術實現篇
第6章 Spring Boot 56
6.1 介紹 56
6.2 特點 57
6.3 Spring Boot和微服務之間的關係 57
6.4 如何使用 58
6.5 可定製化 61
6.6 本章小結 64
第7章 Spring Cloud 65
7.1 Spring Cloud優勢 66
7.2 Spring Cloud特點 67
7.3 Spring Cloud之服務管理 68
7.4 註冊中心Eureka 69
7.4.1 什麼是註冊中心 69
7.4.2 為什麼要有註冊中心 69
7.4.3 Eureka來歷 70
7.4.4 Eureka機制 71
7.4.5 如何使用 72
7.5 網關Zuul 77
7.5.1 Zuul 78
7.5.2 反向代理 78
7.5.3 如何使用 79
7.6 客戶端負載均衡Ribbon 84
7.6.1 負載均衡 85
7.6.2 如何使用 85
7.6.3 補充說明 91
7.7 斷路器Hystrix 92
7.7.1 如何隔離 93
7.7.2 電路熔斷器模式 93
7.7.3 回滾降級 94
7.7.4 如何使用 95
7.7.5 交通疏導 101
7.7.6 小結 101
7.8 分散式配置中心Spring Cloud Config 101
7.8.1 為什麼要有配置 102
7.8.2 集中配置的好處 103
7.8.3 配置方式的演進 103
7.8.4 如何使用 104
7.9 服務之間調用Feign 114
7.9.1 Feign如何使用 114
7.9.2 補充說明 118
7.10 服務追蹤 119
7.10.1 Spring Cloud Sleuth介紹 119
7.10.2 Sleuth如何使用 120
7.10.3 日誌聚合Zipkin 122
7.10.4 小結 127
7.11 Spring Cloud和Dubbo的比較 127
7.11.1 生的偉大 127
7.11.2 死的憋屈 127
7.11.3 沒比較沒傷害 128
7.11.4 現狀 128
7.12 Spring Cloud與Spring Boot的關係 129
7.13 本章小結 130
第8章 其他相關技術和工具 131
8.1 資料庫開發持續集成工具Liquibase 131
8.1.1 特性 132
8.1.2 使用 136
8.2 Swagger 144
8.2.1 為什麼使用Swagger 144
8.2.2 如何使用 145
8.2.3 小結 149
8.3 許可權spring security 150
8.4 微服務架構的通信方式 152
8.4.1 同步 153
8.4.2 異步 156
8.5 服務編排 160
8.6 管理工具JIRA 162
第9章 測試相關 166
9.1 單元測試 166
9.1.1 Mockito如何使用 168
9.1.2 Mock 與InjectMocks的區別 171
9.2 接口測試 173
9.3 代碼質量管理工具Sonar 174
9.3.1 特點 174
9.3.2 使用 175
第三部分 項目實戰篇
第10章 三個典型系統案例 188
10.1 企業運營支撐系統 188
10.1.1 背景 188
10.1.2 現狀 188
10.1.3 原因調查 189
10.1.4 解決方案 190
10.2 車隊管理系統 193
10.2.1 背景 193
10.2.2 技術架構 193
10.2.3 服務如何拆分 194
10.3 財務管理系統 195
10.3.1 背景 195
10.3.2 現狀 195
10.3.3 原因調查 196
10.3.4 解決方案 196
10.4 本章小結 197
第11章 開發管理 198
11.1 管理原則 198
11.2 日常管理 198
11.3 代碼質量管理 199
11.4 工作方式 199
11.5 BA的職責 199
11.6 SA的職責 200
11.7 DEV的工作原則 201
11.8 本章小結 201
後記 202