网站首页  软件下载  游戏下载  翻译软件  电子书下载  电影下载  电视剧下载  教程攻略

请输入您要查询的图书:

 

书名 掌握分布式跟踪 微服务和复杂系统性能分析
分类 教育考试-考试-计算机类
作者 (美)尤里·史库罗
出版社 电子工业出版社
下载
简介
编辑推荐
"谷歌(Google)和亚马逊(Amazon)等互联网巨头的崛起,开启了分布式系统在多个数据中心的数千个节点上运行的新时代。微服务则常常以指数级的规模增加了这种复杂性。调试这些系统、跟踪故障、检测瓶颈,甚至仅仅了解正在发生的事情都会变得更加困难。分布式跟踪专注于解决复杂分布式系统的这些问题。如今,分布式跟踪标准已经建立起来,我们有了更快的系统,使埋点变得不那么具有侵入性,数据变得更有价值。
Jaeger是一个流行的开源分布式跟踪系统,其创始人Yuri Shkuro在《掌握分布式跟踪:微服务和复杂系统性能分析》这本书中对其进行了全方位的讲述,包括回顾分布式跟踪的历史和理论基础;通过使用OpenTracing、W3C Trace Context和OpenCensus等开放标准提供的代码埋点技术,解决数据收集问题,并讨论了分布式跟踪基础设施的应用及其对理解和分析复杂系统带来的好处。
你将学到的东西:
■ 如何开始使用分布式跟踪系统
■ 如何从端到端跟踪中获得优选价值
■ 了解该领域的开放标准
■ 了解代码埋点和操作跟踪基础设施
■ 了解分布式跟踪在何处适合作为微服务的核心功能"
内容推荐
本书是作者基于其在Uber跟踪团队担任技术主管时的个人经历而写的。本书分4部分共14章,内容包括:为什么需要分布式跟踪、跟踪一次HotROD之旅、分布式跟踪基础、OpenTracing的埋点基础、异步应用程序埋点、跟踪标准与生态系统、使用服务网格进行跟踪、关于采样、跟踪的价值、分布式上下文传播、集成指标与日志、通过数据挖掘提炼洞见、在大型组织中实施跟踪、分布式跟踪系统的底层架构。希望读者能通过本书了解分布式跟踪及其相关应用的基本原则和设计思路,从而找到将其应用到自己的项目和系统中的有效方法。本书的目标读者包括应用程序开发人员、SRE工程师、DevOps工程师、框架和基础设施开发人员、技术经理和管理人员、跟踪团队等。
目录
I引言1
1为什么需要分布式跟踪2
微服务与云原生应用程序3
什么是可观测性5
微服务的可观测性挑战7
传统的监控工具9
指标10
日志11
分布式跟踪12
我在跟踪领域的经历14
为何编写本书17
总结18
参考资料19
2跟踪一次HotROD之旅20
先决条件21
从预打包的二进制文件运行21
从Docker镜像运行22
从源代码运行22
启动Jaeger24
初识HotROD26
架构29
数据流30
上下文日志32
span标记与日志35
确定延迟的来源37
资源使用属性50
总结53
参考资料54
3分布式跟踪基础55
想法56
请求相关性56
黑盒推理57
特定于域的模式57
元数据传播57
剖析分布式跟踪59
采样60
保留因果关系60
请求间因果关系62
跟踪模型63
事件模型63
span模型65
时钟偏差调整67
跟踪分析69
总结70
参考资料70
Ⅱ数据收集问题73
4OpenTracing的埋点基础74
先决条件76
项目源代码76
Go开发环境77
Java开发环境78
Python开发环境78
MySQL数据库78
查询工具(curl或wget)79
跟踪后端(Jaeger)79
OpenTracing80
练习1:Hello应用程序83
用Go语言实现Hello应用程序84
用Java语言实现Hello应用程序88
用Python语言实现Hello应用程序92
练习总结94
练习2:第一个跟踪94
步骤1:创建跟踪器实例94
步骤2:启动span99
步骤3:注释span102
练习总结107
练习3:跟踪函数和传递上下文108
步骤1:跟踪单个函数109
步骤2:将多个span合并为一个跟踪111
步骤3:传播进程内上下文115
练习总结123
练习4:跟踪RPC请求124
步骤1:拆解单体124
步骤2:在进程之间传递上下文127
步骤3:应用OpenTracing推荐的标记136
练习总结141
练习5:使用baggage141
在Go中使用baggage142
在Java中使用baggage142
在Python中使用baggage143
练习总结143
练习6:自动埋点143
Go中的开源埋点144
Java中的自动埋点146
Python中的自动埋点148
练习7:额外练习151
总结151
参考资料152
5异步应用程序埋点153
先决条件154
项目源代码154
Java开发环境155
Kafka、ZooKeeper、Redis与Jaeger155
TracingTalk聊天应用程序156
实现158
运行应用程序162
观察跟踪163
使用OpenTracing埋点166
Spring埋点167
tracerresolver167
Redis埋点168
Kafka埋点170
埋点异步代码178
总结183
参考资料183
6跟踪标准与生态系统184
埋点形式185
分析跟踪部署和互操作性188
跟踪的五种含义190
了解受众192
生态系统193
跟踪系统193
X-Ray、Stackdriver等194
标准项目194
总结200
参考资料201
7使用服务网格进行跟踪202
服务网格203
服务网格的可观测性206
先决条件207
项目源代码207
Java开发环境208
Kubernetes208
Istio208
Hello应用程序210
使用Istio进行分布式跟踪213
使用Istio生成服务图223
分布式上下文和路由225
总结228
参考资料228
8关于采样230
基于头部的一致性采样231
概率采样231
速率采样232
保证吞吐量的概率采样234
自适应采样235
上下文敏感的采样244
实时采样或调试采样244
如何处理过采样247
基于尾部的一致性采样249
部分采样253
总结253
参考资料253
Ⅲ从跟踪中获取价值255
9跟踪的价值256
作为知识库的跟踪257
服务图257
深度,路径感知服务图259
检测架构问题262
性能分析263
关键路径分析263
识别跟踪模式265
范例269
延迟直方图271
长期性能分析273
总结273
参考资料274
10分布式上下文传播275
布朗跟踪平面276
PivotTracing280
混沌工程283
流量标记285
生产环境测试286
生产环境调试287
在生产环境中进行开发288
总结289
参考资料289
11集成指标与日志291
可观测性的三大支柱292
先决条件294
项目源代码294
Java开发环境295
在Docker中运行服务器295
在Kibana中声明索引模式296
运行客户端297
Hello应用程序298
与指标集成299
通过跟踪埋点实现标准指标299
向标准指标中添加上下文303
上下文感知的指标API308
与日志集成309
结构化日志记录309
将日志与跟踪上下文关联起来311
上下文感知的日志API316
在跟踪系统中捕获日志316
是否需要单独的日志记录和跟踪后端318
总结319
参考资料320
12通过数据挖掘提炼洞见321
特征提取322
数据挖掘管道的组件323
跟踪后端324
跟踪完成触发器324
特征提取器325
聚合器326
特征提取练习326
先决条件328
项目源代码328
在Docker中运行服务器329
在Elasticsearch中定义索引映射330
Java开发环境331
微服务模拟器331
在Kibana中定义索引模式334
span计数作业336
跟踪完成触发器338
特征提取器340
观测趋势341
谨防推断349
历史分析350
实时分析350
总结353
参考资料353
Ⅳ部署和维护跟踪基础设施355
13在大型组织中实施跟踪356
为什么很难部署跟踪埋点357
减少采用障碍358
标准框架359
内部适配器库360
默认启用跟踪361
monorepo361
与现有的基础设施集成362
从哪里开始362
构建文化364
解释价值364
与开发人员工作流集成365
跟踪质量指标366
故障排除指南369
跳出关键路径369
总结369
参考资料370
14分布式跟踪系统的底层架构371
为什么需要自己“造轮子”372
定制和集成372
带宽成本372
把控数据373
押注新兴标准373
架构和部署模式374
基本架构:代理+收集器+查询服务374
流式架构377
多租户378
安全381
在多个数据中心运行382
监控和故障诊断384
弹性386
过采样386
调试跟踪387
数据中心故障转移导致的流量峰值387
无休止的跟踪387
长跟踪388
总结388
参考资料388
后记390
参考资料393
书评(媒体评论)
"《掌握分布式跟踪:微服务和复杂系统性能分析》将使你能够上手操作和改善属于自己的分布式跟踪基础设施。通过实践练习和代码示例,你将了解如何将端到端跟踪用作强大的应用程序性能管理和分析工具。
——谷歌SRE团队负责人"
随便看

 

霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。

 

Copyright © 2002-2024 101bt.net All Rights Reserved
更新时间:2025/2/23 5:52:07