Apache SkyWalking實(shí)戰(zhàn)
定 價(jià):79 元
- 作者:吳晟 高洪濤 趙禹光 曹亦雄 等
- 出版時(shí)間:2020/7/1
- ISBN:9787111659068
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類(lèi):TP316.4
- 頁(yè)碼:0
- 紙張:
- 版次:
- 開(kāi)本:16開(kāi)
內(nèi)容介紹
這是一本從功能使用、項(xiàng)目設(shè)計(jì)、核心模塊、工作原理、擴(kuò)展實(shí)踐5個(gè)維度全面講解SkyWalking的著作。由SkyWalking的創(chuàng)始人和核心開(kāi)發(fā)團(tuán)隊(duì)撰寫(xiě),得到了來(lái)自華為、百度、螞蟻金服、京東數(shù)科、Tetrate.io的5位技術(shù)專(zhuān)家的聯(lián)袂推薦。
本書(shū)共14章,在邏輯上分為4個(gè)部分:
第壹部分 SkyWalking入門(mén)(第1~3章)
詳細(xì)介紹了SkyWalking的必備常識(shí)、架構(gòu)設(shè)計(jì)、安裝與配置,以及它在單體應(yīng)用架構(gòu)和微服務(wù)架構(gòu)中的實(shí)戰(zhàn)操作,能幫助讀者快速上手;
第二部分 SkyWalking理論(第4~5章)
作為監(jiān)控軟件,SkyWalking需要考慮如何使自身對(duì)應(yīng)用的影響*小化,以及如何實(shí)現(xiàn)分布式追蹤和監(jiān)控,這兩章對(duì)此做了詳細(xì)的技術(shù)分析。內(nèi)存無(wú)堵塞隊(duì)列是減小系統(tǒng)負(fù)載的關(guān)鍵,而集中分布式追蹤模型是SkyWalking監(jiān)控分析的靈魂。
第三部分 SkyWalking原理(第6~12章)
SkyWalking后端的OAP平臺(tái)具有極強(qiáng)的模塊化和擴(kuò)展能力,本篇深入講解了總體的模塊化設(shè)計(jì),以及OAL分析、集群和存儲(chǔ)這三個(gè)*核心模塊。此外,還介紹了探針插件開(kāi)發(fā)和MQ通信模式擴(kuò)展這兩個(gè)熱門(mén)主題。
第四部分 SkyWalking趨勢(shì)(第13~14章)
SkyWalking雖然是以分布式探針為基礎(chǔ)的分布式追蹤工具,但深耕于整個(gè)APM領(lǐng)域。本部分從Service Mesh和基于語(yǔ)言探針性能剖析這兩大方向,展現(xiàn)了SkyWalking在云原生領(lǐng)域更大的集成能力和運(yùn)用范圍。
前 言
第1章 全面認(rèn)識(shí)Apache SkyWalking 1
1.1 SkyWalking介紹 1
1.1.1 什么是SkyWalking 1
1.1.2 SkyWalking的發(fā)展歷程 2
1.1.3 SkyWalking的適用場(chǎng)景 3
1.1.4 SkyWalking的社區(qū)與生態(tài) 5
1.2 SkyWalking的架構(gòu)設(shè)計(jì) 6
1.2.1 面向協(xié)議設(shè)計(jì) 7
1.2.2 模塊化設(shè)計(jì) 8
1.2.3 輕量化設(shè)計(jì) 9
1.3 SkyWalking的優(yōu)勢(shì) 9
1.3.1 傳統(tǒng)分布式架構(gòu)與云原生的一致性支持 10
1.3.2 易于維護(hù) 10
1.3.3 高性能 11
1.3.4 利于二次開(kāi)發(fā)和集成 11
1.4 SkyWalking開(kāi)發(fā)必備知識(shí)介紹 11
1.4.1 JavaAgent介紹 12
1.4.2 遠(yuǎn)程調(diào)試介紹 18
1.4.3 Service Mesh介紹 19
1.5 本章小結(jié) 21
第2章 SkyWalking安裝與配置 22
2.1 項(xiàng)目編譯與工程結(jié)構(gòu) 22
2.1.1 項(xiàng)目編譯 22
2.1.2 工程結(jié)構(gòu) 24
2.2 JavaAgent安裝 27
2.2.1 安裝方法 27
2.2.2 配置參數(shù) 29
2.2.3 插件介紹 30
2.2.4 高級(jí)特性 36
2.3 后端與UI部署 43
2.3.1 SkyWalking部署介紹 43
2.3.2 快速啟動(dòng) 45
2.3.3 application.yaml詳解 46
2.3.4 參數(shù)復(fù)寫(xiě) 51
2.3.5 IP和端口設(shè)置 51
2.3.6 集群管理配置 52
2.3.7 Kubernetes部署 56
2.3.8 后端存儲(chǔ) 58
2.3.9 設(shè)置服務(wù)端采樣率 62
2.3.10 告警設(shè)置 63
2.3.11 Exporter設(shè)置 66
2.3.12 UI部署詳解 66
2.4 UI介紹 67
2.4.1 Dashboard介紹 67
2.4.2 拓?fù)浣榻B 69
2.4.3 Trace視圖 70
2.5 本章小結(jié) 71
第3章 Apache SkyWalking實(shí)戰(zhàn) 72
3.1 SkyWalking與單體應(yīng)用架構(gòu) 72
3.1.1 什么是單體應(yīng)用架構(gòu) 72
3.1.2 單體應(yīng)用架構(gòu)的優(yōu)缺點(diǎn) 74
3.1.3 SkyWalking對(duì)單體應(yīng)用架構(gòu)的適用性 74
3.2 SkyWalking與微服務(wù)架構(gòu) 75
3.2.1 遠(yuǎn)程過(guò)程調(diào)用 77
3.2.2 外部服務(wù) 78
3.3 實(shí)戰(zhàn)環(huán)境搭建 79
3.3.1 SkyWalking后臺(tái)搭建 79
3.3.2 實(shí)戰(zhàn)集群搭建 80
3.4 實(shí)戰(zhàn)操作 82
3.4.1 觀察微服務(wù)中的各個(gè)維度 82
3.4.2 觀察指標(biāo) 83
3.4.3 觀察系統(tǒng)架構(gòu) 85
3.4.4 提取關(guān)鍵路徑 90
3.4.5 查找失敗服務(wù)或請(qǐng)求 93
3.4.6 查找慢服務(wù)或請(qǐng)求 96
3.4.7 處理告警 101
3.5 本章小結(jié) 105
第4章 輕量級(jí)隊(duì)列內(nèi)核 106
4.1 什么是輕量級(jí)隊(duì)列內(nèi)核 106
4.1.1 Buffer 106
4.1.2 Channel 107
4.1.3 DataCarrier 108
4.2 生產(chǎn)者—消費(fèi)者如何協(xié)同 108
4.2.1 生產(chǎn)消息 108
4.2.2 消費(fèi)消息 111
4.3 本章小結(jié) 115
第5章 SkyWalking追蹤模型 116
5.1 追蹤模型入門(mén) 116
5.1.1 Dapper與追蹤模型 116
5.1.2 典型的追蹤模型 119
5.2 SkyWalking追蹤模型與協(xié)議 120
5.2.1 SkyWalking追蹤模型 120
5.2.2 SkyWalking數(shù)據(jù)傳輸協(xié)議 122
5.3 SkyWalking探針上下文傳播協(xié)議 124
5.3.1 傳播模型 124
5.3.2 傳播上下文 124
5.4 SkyWalking v3協(xié)議 125
5.5 本章小結(jié) 126
第6章 SkyWalking OAP Server模塊化架構(gòu) 127
6.1 模塊化框架 127
6.1.1 模塊和模塊實(shí)現(xiàn) 127
6.1.2 模塊管理配置文件 129
6.2 模塊啟動(dòng)與模塊依賴(lài) 130
6.3 模塊可替換性 131
6.4 模塊實(shí)現(xiàn)選擇器 132
6.5 新增模塊 132
6.6 本章小結(jié) 133
第7章 Observability Analysis Language體系 134
7.1 什么是OAL 134
7.2 OAL實(shí)現(xiàn)原理 135
7.3 OAL語(yǔ)法 137
7.3.1 指標(biāo)計(jì)算定義語(yǔ)法 137
7.3.2 disable語(yǔ)法 142
7.4 本章小結(jié) 143
第8章 SkyWalking OAP Server集群通信模型 144
8.1 計(jì)算流 145
8.2 通信協(xié)議 146
8.3 集群協(xié)調(diào)器 148
8.4 本章小結(jié) 149
第9章 SkyWalking OAP Server存儲(chǔ)模型 150
9.1 模型結(jié)構(gòu)介紹 150
9.1.1 注冊(cè)模型結(jié)構(gòu) 150
9.1.2 明細(xì)模型結(jié)構(gòu) 152
9.1.3 指標(biāo)模型結(jié)構(gòu) 153
9.1.4 采樣模型結(jié)構(gòu) 154
9.2 存儲(chǔ)模型間的聯(lián)系 154
9.3 存儲(chǔ)模型與OAL的關(guān)系 156
9.4 本章小結(jié) 159
第10章 Java探針插件開(kāi)發(fā) 160
10.1 基礎(chǔ)概念 160
10.1.1 Span 160
10.1.2 Trace Segment 161
10.1.3 ContextCarrier 162
10.1.4 ContextSnapshot 162
10.2 核心對(duì)象相關(guān)API的使用 162
10.3 探針插件工程結(jié)構(gòu) 168
10.3.1 工程結(jié)構(gòu)簡(jiǎn)介 168
10.3.2 定義攔截形式 169
10.3.3 實(shí)現(xiàn)攔截形式的攔截器 171
10.4 探針插件開(kāi)發(fā)實(shí)戰(zhàn) 171
10.4.1 設(shè)計(jì)探針插件 172
10.4.2 Apache Dubbo探針插件 173
10.4.3 Spring @Async探針插件 177
10.5 本章小結(jié) 182
第11章 探針和后端消息通信模式開(kāi)發(fā) 183
11.1 為什么官方默認(rèn)不提供多種方式 183
11.2 通信機(jī)制分析 184
11.2.1 探針與后端的注冊(cè)通信 184
11.2.2 探針與后端的數(shù)據(jù)上報(bào)通信 193
11.3 如何擴(kuò)展通信模式 197
11.3.1 使用HTTP擴(kuò)展注冊(cè)通信 198
11.3.2 使用Kafka擴(kuò)展數(shù)據(jù)上報(bào)通信 205
11.4 本章小結(jié) 214
第12章 SkyWalking OAP Server監(jiān)控與指標(biāo) 215
12.1 針對(duì)Trace場(chǎng)景的監(jiān)控指標(biāo) 216
12.2 針對(duì)Service Mesh場(chǎng)景的監(jiān)控指標(biāo) 219
12.3 自監(jiān)控 220
12.4 本章小結(jié) 221
第13章 下一代監(jiān)控體系——SkyWalking觀測(cè)Service Mesh 222
13.1 SkyWalking可觀測(cè)性模型 223
13.1.1 監(jiān)控指標(biāo) 223
13.1.2 告警與可視化 224
13.1.3 分布式追蹤和日志 225
13.2 觀測(cè)Istio的監(jiān)控指標(biāo) 226
13.2.1 Mixer模式集成 226
13.2.2 ALS模式集成 227
13.3 觀測(cè)Istio的技術(shù)發(fā)展 229
13.4 本章小結(jié) 229
第14章 SkyWalking未來(lái)初探 230
14.1 SkyWalking 7新特性 230
14.1.1 Java探針不再支持JDK 1.6和1.7 230
14.1.2 支持新的生產(chǎn)級(jí)存儲(chǔ)實(shí)現(xiàn) 231
14.1.3 HTTP請(qǐng)求參數(shù)采集 231
14.1.4 HTTP收集協(xié)議和Nginx監(jiān)控 232
14.1.5 Elasticsearch存儲(chǔ)的進(jìn)一步優(yōu)化 232
14.2 代碼性能剖析 232
14.2.1 性能剖析基本原理 232
14.2.2 性能剖析的功能特點(diǎn) 233
14.2.3 使用場(chǎng)景 233
14.3 SkyWalking 8 Roadmap 234
14.4 本章小結(jié) 234