本書贊譽
前言
第1章 微服務入門 1
1.1 單體服務的特點 1
1.2 拆分服務 2
1.2.1 分而治之以降低復雜性 2
1.2.2 分而用之以提高可重用性 4
1.2.3 分而做之以提高開發(fā)效率 5
1.3 微服務的特點 5
1.3.1 微服務架構的特點 6
1.3.2 微服務架構的特征 7
1.3.3 微服務架構的風格 7
1.3.4 微服務的分類 7
1.3.5 多小的服務才是微服務 8
1.4 微服務之道 8
1.4.1 軟件之道 8
1.4.2 關于微服務的思考 10
1.5 土豆微服務案例快速上手 11
1.5.1 土豆微服務構建計劃 11
1.5.2 微服務構建一:土豆管理微服務 13
1.5.3 微服務構建二:土豆提醒微服務 24
1.5.4 微服務構建三:土豆網頁微服務 30
1.5.5 部署土豆微服務 35
1.6 本章小結 38
第2章 微服務度量的基本概念 39
2.1 微服務的局限及其解決方案 39
2.1.1 微服務的局限 39
2.1.2 解決方案 40
2.2 微服務中度量的重要性 41
2.3 微服務度量的內容 42
2.3.1 按度量的目標劃分 43
2.3.2 按度量的層次劃分 44
2.4 微服務度量指標與術語 49
2.4.1 統(tǒng)計學指標 49
2.4.2 度量指標相關術語 53
2.4.3 度量處理相關術語 55
2.5 微服務度量策略選擇 58
2.5.1 如何做度量 58
2.5.2 如何選擇度量方案 60
2.6 本章小結 63
第3章 微服務度量的設計 64
3.1 微服務協(xié)議的選擇與度量 64
3.1.1 協(xié)議概述 64
3.1.2 協(xié)議分類 65
3.1.3 協(xié)議分析 67
3.2 HTTP及其度量 71
3.2.1 HTTP簡介 71
3.2.2 REST協(xié)議的度量要點 71
3.3 SIP及其度量 72
3.3.1 SIP簡介 72
3.3.2 SIP的度量要點 73
3.4 RTP及其度量 73
3.4.1 RTP簡介 73
3.4.2 RTP的度量要點 74
3.5 數(shù)據(jù)存儲系統(tǒng)的選型 76
3.5.1 理論回顧 76
3.5.2 數(shù)據(jù)存儲系統(tǒng)選型 78
3.5.3 數(shù)據(jù)存儲系統(tǒng)特性 79
3.6 基于度量實現(xiàn)高可用性 80
3.6.1 分流——負載均衡 81
3.6.2 限流——速率控制 83
3.6.3 斷流——熔斷隔離 91
3.7 土豆微服務度量驅動的設計 95
3.7.1 為如何度量而設計 96
3.7.2 通過度量改進設計 101
3.8 本章小結 102
第4章 度量驅動的微服務實現(xiàn) 103
4.1 度量代碼 103
4.1.1 代碼度量標準 103
4.1.2 代碼度量關鍵指標 105
4.1.3 小結 107
4.2 度量進度 108
4.3 度量性能 110
4.4 度量微服務的常用技術 123
4.4.1 利用切面記錄度量日志 123
4.4.2 利用線程局部變量記錄度量信息 124
4.4.3 利用過濾器找準度量點 126
4.4.4 提供JMX暴露內部度量指標 127
4.4.5 提供API或命令行接口暴露內部度量指標 131
4.4.6 閾值和采樣率控制度量數(shù)據(jù)量 132
4.4.7 利用簡單網絡管理協(xié)議提供度量查詢和報警支持 135
4.4.8 綜合利用以上技術 135
4.5 度量常用類庫 138
4.5.1 Dropwizard的Metrics-core 138
4.5.2 Pivotal的Micrometer 140
4.5.3 Spring Boot Actuator 142
4.6 土豆微服務度量實現(xiàn) 147
4.6.1 為土豆微服務提供代碼度量 147
4.6.2 為土豆微服務添加健康檢查API 152
4.6.3 為土豆微服務提供資源使用率度量 156
4.6.4 為土豆微服務提供使用量的度量 157
4.6.5 為土豆微服務提供性能度量 159
4.6.6 為土豆微服務提供錯誤度量 160
4.6.7 為土豆微服務提供業(yè)務KPI度量 160
4.7 本章小結 163
第5章 度量數(shù)據(jù)的聚合與展示 164
5.1 度量數(shù)據(jù)的聚合和存儲 164
5.2 度量數(shù)據(jù)的清洗和處理 166
5.2.1 數(shù)據(jù)清洗的方法 166
5.2.2 數(shù)據(jù)清洗的案例 166
5.3 度量數(shù)據(jù)的可視化 170
5.3.1 圖表的結構 170
5.3.2 圖表的類型 170
5.3.3 如何選擇圖表 179
5.4 常用度量聚合與展示方案 181
5.4.1 TIG方案 181
5.4.2 ELKK方案 188
5.4.3 Collectd方案 193
5.4.4 Prometheus方案 198
5.5 土豆微服務的度量聚合與展示 200
5.5.1 土豆微服務支持多種度量聚合與展示系統(tǒng)的設計 200
5.5.2 基于TIG的土豆微服務度量聚合與展示 202
5.5.3 基于ELKK的土豆微服務度量聚合與展示 207
5.6 本章小結 214
第6章 度量數(shù)據(jù)的分析與報警 215
6.1 度量數(shù)據(jù)的分析 215
6.1.1 確定數(shù)據(jù)分析的目標 215
6.1.2 數(shù)據(jù)分析常見問題 218
6.2 實現(xiàn)報警常用的技術 222
6.2.1 Python數(shù)據(jù)分析技術棧 223
6.2.2 YAML配置文件 223
6.2.3 Elasticsearch API 224
6.2.4 Pandas DataFrame 226
6.2.5 Matplotlib 228
6.3 土豆微服務的報警實現(xiàn) 230
6.3.1 報警系統(tǒng)的設計 230
6.3.2 報警系統(tǒng)的實現(xiàn) 232
6.3.3 報警系統(tǒng)的優(yōu)化 242
6.4 本章小結 244
第7章 度量驅動的運維 245
7.1 部署升級 245
7.1.1 何時能部署到產品線上 246
7.1.2 如何發(fā)布新功能 247
7.2 數(shù)據(jù)的運維 251
7.2.1 健康檢查 251
7.2.2 度量報告 251
7.2.3 度量警告 252
7.2.4 故障處理 252
7.2.5 基于度量來發(fā)現(xiàn)和解決問題 255
7.3 配置調整 258
7.3.1 關于配置的思考 259
7.3.2 配置的版