微服務實踐

微服務實踐

《微服務實踐》是2019年1月人民郵電出版社出版的圖書,作者是[印度]烏姆什·拉姆·夏爾瑪(Umesh Ram Sharma)。

基本介紹

  • 中文名:微服務實踐
  • 作者:[印度]烏姆什·拉姆·夏爾瑪(Umesh Ram Sharma)
  • 出版時間:2019年1月
  • 出版社:人民郵電出版社
  • 頁數:189 頁
  • ISBN:9787115498700
  • 定價:49 元
  • 開本:16 開
  • 裝幀:平裝
內容簡介,圖書目錄,

內容簡介

近些年來,微服務一直是非常熱門的話題,關於微服務架構的討論也是層出不窮。本書以貫穿整書的示例為出發點,由淺入深地闡述使用微服務的最佳實踐,以及如何避免採用微服務架構可能帶來的複雜性陷阱。本書從微服務架構本身的特徵入手,討論微服務組件的設計指導原則、有效通信的方式以及常見的安全挑戰和數據模型的選擇;然後進入微服務架構的測試部分,探討微服務的測試挑戰和解決方法、監控和擴展常用的實踐以及如何將現有架構演變為微服務架構;最後總結微服務架構在設計和開發方面遇到的常見問題及解決方案。

圖書目錄

第 1章 微服務架構簡介 1
1.1 常規微服務架構 2
1.2 微服務架構的特徵 2
1.2.1 問題定義 2
1.2.2 解決方案 3
1.3 做好微服務架構面臨的挑戰 4
1.3.1 通過日誌調試 5
1.3.2 服務監控 5
1.3.3 公共庫 5
1.3.4 服務之間的訊息傳遞 5
1.3.5 微服務的部署和版本管理 6
1.4 微服務的未來 6
1.4.1 無服務架構 7
1.4.2 微服務即PaaS 7
1.5 與傳統架構相比微服務架構的
優勢 7
1.6 是不是看起來與SOA很像 9
1.7 將業務領域劃分為微服務組件 11
1.8 到底要不要使用微服務 13
1.8.1 組織認同度 13
1.8.2 體驗DevOps 14
1.8.3 分析現有資料庫模型 14
1.8.4 自動化和CI/CD 14
1.8.5 集成 14
1.8.6 安全 14
1.8.7 成功遷移的例子 15
1.9 示例項目(信用風險評估引擎) 15
1.10 Spring 15
1.11 Spring Boot 16
1.12 小結 19
第 2章 定義微服務組件 21
2.1 微服務的定義 21
2.2 服務發現及其用途 22
2.2.1 DNS 22
2.2.2 服務發現的請求 23
2.2.3 服務發現模式示例 26
2.2.4 整個架構中的配置外化 29
2.3 API網關及其訴求 32
2.3.1 認證鑒權 33
2.3.2 不同協定 34
2.3.3 負載均衡 34
2.3.4 請求轉發(包括服務發現) 34
2.3.5 回響轉換 34
2.3.6 斷路器 35
2.3.7 API網關的優劣性 35
2.4 API網關的例子 36
2.5 用戶註冊微服務的開發 39
2.6 小結 59
第3章 微服務端點之間的通信 61
3.1 微服務間應該如何通信 61
3.2 編制和編排 62
3.2.1 編制 62
3.2.2 編排 63
3.3 同步通信和異步通信 65
3.3.1 同步通信 65
3.3.2 異步通信 68
3.3.3 財務服務 79
3.4 小結 90
第4章 微服務端點的安全 91
4.1 微服務的安全挑戰 91
4.1.1 複合技術棧或者存在遺留
代碼 92
4.1.2 認證和授權(訪問控制) 92
4.1.3 基於令牌的安全實踐 92
4.1.4 安全性的責任 92
4.1.5 編制風格的風險 92
4.1.6 微服務之間的通信 93
4.2 與OpenID的OAuth 2.0一起
使用JWT 94
4.2.1 OpenID 94
4.2.2 OAuth 2.0 95
4.2.3 JWT 97
4.2.4 示例套用 99
4.3 小結 111
第5章 創建高效的數據模型 113
5.1 數據和建模 113
5.2 單體架構中的數據模型 114
5.3 SOA中的數據模型 115
5.4 微服務架構中的數據模型 116
5.4.1 每個微服務限定一些
資料庫表 116
5.4.2 每個微服務一個資料庫 117
5.4.3 Saga模式 117
5.4.4 必要時採用混合數據
技術 119
5.5 從單體套用向微服務遷移數據
模型 120
5.5.1 領域驅動設計 120
5.5.2 數據模型遷移方式 121
5.6 小結 126
第6章 測試微服務 127
6.1 微服務中測試的目的 127
6.2 單元測試 128
6.3 集成測試 131
6.4 組件(服務)測試 131
6.5 契約測試 133
6.5.1 Pact 133
6.5.2 Spring Cloud Contract 134
6.6 端到端測試 135
6.7 更進一步 135
6.8 小結 136
第7章 部署微服務 137
7.1 持續集成 137
7.2 持續交付 138
7.3 用微服務配置CI和CD工具 140
7.4 微服務的Docker化 147
7.4.1 Docker 148
7.4.2 Docker引擎 148
7.4.3 Docker鏡像 148
7.4.4 Docker存儲 148
7.4.5 應用程式在Docker中是
如何工作的 149
7.4.6 公共、私有和官方的
鏡像庫 149
7.4.7 Docker與VM的區別 149
7.4.8 在Linux中安裝Docker 150
7.5 在Docker化的微服務中使用
開源CI工具 154
7.6 小結 156
第8章 演進現有系統 157
8.1 從哪裡開始 159
8.1.1 架構視角和最佳實踐 159
8.1.2 資料庫視角和最佳實踐 162
8.2 示例套用及其演變過程 163
8.2.1 用戶管理服務 164
8.2.2 購物車/訂單服務 164
8.2.3 支付服務 164
8.2.4 配送/跟蹤服務和通信
服務 164
8.2.5 產品推薦服務 165
8.2.6 調度服務 165
8.3 小結 166
第9章 微服務的監控和擴展 167
9.1 微服務系統的監控原則 167
9.1.1 如何設定並使用警報 168
9.1.2 從一開始做好監控和發布
渠道規劃 168
9.1.3 自動擴展和自動發現 168
9.1.4 監控前門流量 169
9.2 監控模式的發展變化 169
9.3 日誌記錄有助於監控 170
9.4 微服務系統的擴展原則 171
9.4.1 x軸 172
9.4.2 y軸 172
9.4.3 z軸 173
9.5 實施擴展策略前請三思 174
9.6 微服務的監控和擴展工具 175
9.7 小結 180
第 10章 故障排除 181
10.1 使用微服務時的常見問題 181
10.1.1 性能下降 181
10.1.2 日誌記錄位置因編程
語言而異 183
10.1.3 多組件之間的耦合或
依賴問題 184
10.1.4 服務部署數量與日
俱增 184
10.1.5 監控多項服務,發現性能
下降或其他問題 185
10.1.6 日誌與不同組件的
關係 185
10.2 常見問題的解決方法 186
10.2.1 解決性能問題的步驟 186
10.2.2 處理不同語言生成的並處於
不同位置的日誌記錄 186
10.2.3 服務之間的依賴關係 187
10.2.4 DevOps專家積極參與 187
10.2.5 監控 188
10.3 小結 189

相關詞條

熱門詞條

聯絡我們