本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
9787000016518
9787121361920 9787121362132 9787121359644 9787121360954
Service Mesh实战:用Istio软负载实现服务网格
周遥 (作者)
书 号:978-7-121-36192-0
出版日期:2019-05-15
页 数:
开 本:
出版状态:图书立项
针对当今火热的“服务网格(Service Mesh)”技术进行由浅入深地讲解,通过讲述分布式服务的演进历史,展示每阶段技术架构中遭遇的问题及终“服务网格”出现的原因与必然性,再逐一介绍“服务网格”的主流技术栈并重点针对 “Google istio”进行详细的技术分析与解读,后结合企业环境进行实践操作与体系搭建示例。
高可用可伸缩微服务架构:基于Dubbo、Spring Cloud和Service Mesh
程超 (作者)
书 号:978-7-121-36213-2
出版日期:2019-05-01
页 数:528
开 本:16(185*235)
出版状态:上市销售
108.00
近年来微服务架构已经成为大规模分布式架构的主流技术,越来越多的公司已经或开始转型为微服务架构。本书不以某一种微服务框架的使用为主题,而是对整个微服务生态进行性的讲解,并结合工作中的大量实战案例为读者呈现一本读完即可实际上手应用的工具书。
书中的理论部分介绍了微服务架构的发展历程,通俗地讲解了领域驱动设计,帮助读者更好地利用DDD来建模和划分服务;微服务稳定性保证的常用手段和微服务下如何保证事务的一致性这两章凝聚了作者多年的积累和思考,相信读者看完后会有不一样的感触和收获;书中实战部分的内容非常丰富,以项目为基础,逐层介绍常见的Dubbo、Spring Cloud和Service Mesh框架的具体使用方法,并对实现原理进行剖析;书中还以具体案例全面介绍了微服务双活体系建设、微服务监控与告警、微服务编排、百亿流量微服务网关的设计与实现,以及基于支付场景下的微服务改造等,并让读者了解如何借助微服务来增强和重构现有的遗留。
不管是刚接触微服务的新手,还是正在尝试借助微服务解放生产力的开发人员或运维人员,甚至是立志于构建高可用可伸缩的微服务体系的技术Leader和架构师,阅读本书,对读者必有裨益。
第1章 微服务架构概述 1
1.1 什么是架构 1
1.2 几个相关概念 3
1.3 从软件的生命周期看架构设计 7
1.4 架构的形式与特点 9
1.5 架构的目标与方法 13
1.6 架构的不同风格 18
第2章 微服务领域驱动设计 30
2.1 领域驱动设计 31
2.1.1 领域驱动设计概览 31
2.1.2 问题域与解决方案域 34
2.1.3 限界上下文 35
2.1.4 上下文映射 40
2.1.5 领域架构 43
2.2 微服务的设计 48
2.2.1 限界上下文的边界 48
2.2.2 限界上下文即微服务 51
2.2.3 识别限界上下文 53
2.2.4 微服务之间的协作 59
2.3 小结 63
第3章 Apache Dubbo框架的原理与实现 64
3.1 Dubbo框架的选型与使用 64
3.1.1 Dubbo框架的选型 64
3.1.2 Dubbo框架的使用 65
3.2 Dubbo框架的原理分析 70
3.2.1 总体架构分析 70
3.2.2 Dubbo Bean的加载 73
3.2.3 Dubbo Extension机制 77
3.2.4 Dubbo消费端 91
3.2.5 Dubbo服务端 126
3.2.6 Dubbo的通信机制 144
3.3 基于Dubbo的自动化Mock 165
3.3.1 Mock模拟的产生 166
3.3.2 Dubbo Mock的使用 167
3.3.3 Dubbo Mock的原理解析 168
3.3.4 自动化Mock的实现 170
第4章 Spring Boot/Spring Cloud实践 177
4.1 Spring Boot原理剖析 178
4.1.1 Spring Boot Quick Start 178
4.1.2 Spring Boot之SpringApplication 180
4.1.3 spring-boot-loaded模块分析 186
4.1.4 spring-boot-autoconfigure模块分析 190
4.1.5 Spring Boot Conditional注解分析 195
4.2 Dubbo Spring Boot Starter 198
4.2.1 Dubbo Spring Boot Starter简介 198
4.2.2 Dubbo Initializr及sample 198
4.2.3 dubbo-spring-boot-autoconfigure模块 201
4.2.4 dubbo-spring-boot-actuator模块 204
4.3 Spring Cloud栈 211
4.3.1 为什么微服务架构需要Spring Cloud 212
4.3.2 Spring Cloud技术栈总览 214
4.3.3 spring-cloud-scaffold基础库集合 215
4.4 基于Maven Archetype的脚手架 239
4.4.1 Maven Archetype 239
4.4.2 脚手架的搭建 240
4.4.3 生成脚手架 247
第5章 微服务稳定性保证的常用手段 250
5.1 微服务的稳定性 250
5.2 高可用 250
5.2.1 限流原理与实现 250
5.2.2 断路器原理与实现 256
5.2.3 超时与重试 260
5.3 高并发 262
5.3.1 异步 263
5.3.2 缓存 270
5.4 总结 272
第6章 微服务下如何保证事务的一致性 273
6.1 从本地事务到分布式事务的演变 273
6.2 强一致性解决方案 276
6.2.1 二阶段提交协议 276
6.2.2 三阶段提交协议 278
6.3 终一致性解决方案 280
6.3.1 TCC模式 280
6.3.2 补偿模式 285
6.3.3 可靠事件模式 286
6.4 开源项目的分布式事务实现解读 288
6.4.1 Apache RocketMQ 288
6.4.2 ServiceComb 289
第7章 百亿流量微服务网关的设计与实现 293
7.1 API网关概述 293
7.1.1 分布式服务架构、微服务架构与 API 网关 293
7.1.2 API网关的定义、职能与关注点 296
7.1.3 API网关的分类与技术分析 298
7.2 开源网关的分析与调研 300
7.2.1 常见的开源网关介绍 300
7.2.2 四大开源网关的对比分析 308
7.2.3 开源网关的技术总结 309
7.3 百亿流量交易API网关设计 310
7.3.1 百亿流量交易API网关的现状和面临问题 310
7.3.2 业务网关的设计与实践 313
第8章 微服务编排 317
8.1 Netflix Conductor 317
8.2 Netflix Conductor的架构 319
8.3 Conductor的使用案例 320
8.4 Netflix Conductor源码分析 328
8.4.1 Client层源码分析 330
8.4.2 Server端源码分析 337
8.4.3 core端源码分析 344
第9章 微服务数据抽取与统计 356
9.1 案例小故事 356
9.2 数据仓库概述 358
9.2.1 什么是数据仓库 358
9.2.2 数据仓库架构 360
9.2.3 数据仓库建模方法 361
9.2.4 数据抽取、转换和加载 361
9.2.5 数据统计 362
9.3 数据仓库工具Hive 362
9.3.1 安装Hive 364
9.3.2 Hive数据库 366
9.3.3 Hive表 367
9.4 使用Sqoop抽取数据 369
9.4.1 安装Sqoop 370
9.4.2 将MySQL表数据导入Hive表 372
9.5 ETL作业调度 375
第10章 微服务双活体系建设 377
10.1高可用 377
10.2 双活数据中心 379
10.2.1 单机房部署 379
10.2.2 双机房部署 380
10.2.3 基于支付场景的双活体系建设 383
第11章 基于支付场景下的微服务改造与性能优化 399
11.1 支付场景的介绍 399
11.2 支付业务建模和服务划分 400
11.3 支付场景下微服务架构的详解与分析 402
11.3.1 业务架构分析 402
11.3.2 技术平台详解 404
11.4 从代码层面提升微服务架构的性能 407
11.4.1 从代码和设计的角度看 407
11.4.2 从整体架构的角度看 418
11.5 微服务架构中常见的一些故障分析技巧 421
第12章 遗留的微服务架构改造 426
12.1 代码分层结构的转变 426
12.2 遗留的债券与思考 430
12.3 从单体拆分服务的方法论 431
12.4 遗留的微服务架构改造 436
12.4.1 从代码重构开始 436
12.4.2 拆分服务需要面向服务进行架构设计 437
12.4.3 改造是一个渐进的过程 437
12.4.4 单元测试是基石 440
12.4.5 面向失败的设计 440
12.4.6 前后端分离 441
12.4.7 共享现有数据库 441
12.4.8 灰度发布的必要性 442
12.4.9 日志聚合与全链路监控 442
第13章 Service Mesh详解 443
13.1 Service Mesh是什么 443
13.2 Service Mesh的背景 443
13.3 Service Mesh介绍 444
13.3.1 Service Mesh架构 444
13.3.2 Service Mesh能做什么 445
13.4 Service Mesh的价值 446
13.5 Service Mesh现状 447
13.6 Service Mesh存在的问题 448
13.7 Istio详解 449
13.7.1 Istio架构 449
13.7.2 数据平面 450
13.7.3 控制平面 455
13.7.4 Isito案例 458
13.8 Service Mesh展望 461
第14章 微服务监控实战 463
14.1 APM原理与应用 464
14.1.1 什么是APM 464
14.1.2 APM监控点 464
14.1.3 APM深入解析 464
14.2 Prometheus监控介绍 492
14.2.1 Prometheus的主要特点 493
14.2.2 Prometheus的架构及组件介绍 493
14.2.3 Prometheus的安装 494
14.2.4 使用Prometheus对MySQL进行监控 498
14.2.5 Prometheus的告警机制 501
蓝墨水图书专营店
深入浅出Istio:Service Mesh快速入门与实践
崔秀龙 (作者) 张国霞 (责任编辑)
丛 书:博文视点云原生精品丛书
书 号:978-7-121-35964-4
出版日期:2019-03-01
页 数:216
开 本:
出版状态:图书立项
定价 79.00
蓝墨水图书专营店
Google联合IBM、Lyft推出的Istio,一经问世就受到了人们的普遍关注,其热度迅速攀升,成为Service Mesh(服务网格)方案的代表项目。本书整理了Istio中的部分概念和案例,以快速入门的形式,对Istio的基础用法一一进行讲解,并在书末给出一些试用方面的建议。
在本书中,前3章从微服务和服务网格的简短历史开始,讲述了服务网格的诞生过程、基本特性及Istio的核心功能,若对这些内容已经有所了解,则可以直接从第4章开始阅读;第4、5章分别讲解了Istio的配置和部署过程;第6章至第9章,通过多个场景来讲解Istio的常用功能;第10章结合了笔者的实践经验,为读者提供了Istio的一系列试用建议。本书没有采用官方复杂的Book Info应用案例,而是采用客户端+简单HTTP服务端的案例,读者随时都能在短时间内启动一个小的测试。
本书面向对服务网格技术感兴趣,并希望进一步了解和学习Istio的中技术人员,假设读者已经了解Kubernetes的相关概念并能够在Kubernetes上熟练部署和管理微服务。若希望全面、深入地学习Kubernetes,可参考《Kubernetes指南:从Docker到Kubernetes实践全接触》和《Kubernetes指南:企业级容器云实战》。
第1章 服务网格的历史
1
1.1 Spring Cloud
3
1.2 Linkerd
4
1.3 Istio
6
1.4 国内服务网格的兴起
6
第2章 服务网格的基本特性
8
2.1 连接
9
2.2 安全
12
2.3 策略
13
2.4 观察
13
第3章 Istio基本介绍
15
3.1 Istio的核心组件及其功能
16
3.1.1 Pilot
16
3.1.2 Mixer
18
3.1.3 Citadel
20
3.1.4 Sidecar(Envoy)
20
3.2 核心配置对象
21
3.2.1 networking.istio.io
22
3.2.2 config.istio.io
24
3.2.3 authentication.istio.io
27
3.2.4 rbac.istio.io
28
3.3 小结
28
第4章 Istio快速入门
29
4.1 环境介绍
30
4.2 快速部署Istio
31
4.3 部署两个版本的服务
33
4.4 部署客户端服务
37
4.5 验证服务
39
4.6 创建目标规则和默认路由
39
4.7 小结
42
第5章 用Helm部署Istio
43
5.1 Istio Chart概述
44
5.1.1 Chart.yaml
44
5.1.2 values-*.yaml
45
5.1.3 requirements.yaml
46
5.1.4 templates/_affinity.tpl
47
5.1.5 templates/sidecar-injector-configmap.yaml
47
5.1.6 templates/configmap.yaml
48
5.1.7 templates/crds.yaml
48
5.1.8 charts
48
5.2 全局变量介绍
49
5.2.1 hub和tag
49
5.2.2 ingress.enabled
50
5.2.3 Proxy相关的参数
51
5.2.4 proxy_init.image
53
5.2.5 imagePullPolicy
53
5.2.6 controlPlaneSecurityEnabled
53
5.2.7 disablePolicyChecks
53
5.2.8 enableTracing
53
5.2.9 mtls.enabled
53
5.2.10 imagePullSecrets
54
5.2.11 arch
54
5.2.12 oneNamespace
54
5.2.13 configValidation
54
5.2.14 meshExpansion
55
5.2.15 meshExpansionILB
55
5.2.16 defaultResources
55
5.2.17 hyperkube
55
5.2.18 priorityClassName
55
5.2.19 crds
56
5.2.20 小结
56
5.3 Istio安装清单的生成和部署
56
5.3.1 编辑values.yaml
56
5.3.2 生成部署清单
58
5.3.3 部署Istio
58
5.4 小结
59
第6章 Istio的常用功能
60
6.1 在网格中部署应用
61
6.1.1 对工作负载的要求
63
6.1.2 使用自动注入
64
6.1.3 准备测试应用
69
6.2 修改Istio配置
69
6.3 使用Istio Dashboard
70
6.3.1 启用Grafana
70
6.3.2 访问Grafana
71
6.3.3 开放Grafana服务
73
6.3.4 学习和定制
74
6.4 使用Prometheus
76
6.4.1 访问Prometheus
76
6.4.2 开放Prometheus服务
77
6.4.3 学习和定制
77
6.5 使用Jaeger
77
6.5.1 启用Jaeger
78
6.5.2 访问Jaeger
78
6.5.3 跟踪参数的传递
81
6.5.4 开放Jaeger服务
86
6.6 使用Kiali
87
6.6.1 启用Kiali
87
6.6.2 访问Kiali
88
6.6.3 开放Kiali服务
92
6.7 小结
92
第7章 HTTP流量管理
93
7.1 定义目标规则
94
7.2 定义默认路由
98
7.3 流量的拆分和迁移
101
7.4 金丝雀部署
105
7.5 根据来源服务进行路由
108
7.6 对URI进行重定向
110
7.7 通信超时控制
115
7.8 故障重试控制
116
7.9 入口流量管理
120
7.9.1 使用Gateway开放服务
121
7.9.2 为Gateway添加证书支持
123
7.9.3 为Gateway添加多个证书支持
124
7.9.4 配置入口流量的路由
126
7.10 出口流量管理
127
7.10.1 设置Sidecar的流量劫持范围
128
7.10.2 设置ServiceEntry
129
7.11 新建Gateway控制器
131
7.12 设置服务熔断
134
7.13 故障注入测试
136
7.13.1 注入
137
7.13.2 注入中断
138
7.14 流量复制
139
第8章 Mixer适配器的应用
142
8.1 Mixer适配器简介
143
8.2 基于Denier适配器的访问控制
144
8.3 基于Listchecker适配器的访问控制
146
8.4 使用MemQuota适配器进行服务限流
150
8.4.1 Mixer对象的定义
150
8.4.2 客户端对象定义
152
8.4.3 测试限流功能
153
8.4.4 注意事项
154
8.5 使用RedisQuota适配器进行服务限流
155
8.5.1 启动Redis服务
155
8.5.2 定义限流相关对象
156
8.5.3 测试限流功能
158
8.6 为Prometheus定义监控指标
158
8.6.1 默认监控指标
159
8.6.2 自定义监控指标
162
8.7 使用stdio输出自定义日志
165
8.7.1 默认的访问日志
167
8.7.2 定义日志对象
169
8.7.3 测试输出
170
8.8 使用Fluentd输出日志
171
8.8.1 部署Fluentd
171
8.8.2 定义日志对象
173
8.8.3 测试输出
174
8.9 小结
175
第9章 Istio的安全加固
176
9.1 Istio安全加固概述
177
9.2 启用mTLS
179
9.3 设置RBAC
183
9.4 RBAC的除错过程
189
第10章 Istio的试用建议
192
10.1 Istio自身的突出问题
193
10.2 确定功能范围
194
10.3 选择试用业务
196
10.4 试用过程
197
10.4.1 制定目标
197
10.4.2 方案部署
198
10.4.3 测试验证
200
10.4.4 切换演练
201
10.4.5 试点上线
201
蓝墨水图书专营店
书名:深入浅出Prometheus:原理、应用、源码与拓展详解
作者:陈晓宇,杨川胡,陈啸
ISBN:978-7-121-36095-4
出版年月:2019年4月
定价:89.00元
页数:384
开本:787×980 1/16
用纸:80g胶版纸
普通关键词:Prometheus,Kubernetes,监控,容器,云原生、CNCF、K8s
学科关键词:计算机
编辑
本书还未出版就受到了很多人的关注,时不时被询问出版进度,热度至此,不火怎行?
Prometheus既适用于容器监控,也适用于传统应用监控
更是从CNCF第2个毕业的开源项目
众多企业或者公司都在使用它
360°围观,它都注定是个项目
现在还没有一本Prometheus书问世,很多人都有很多关于Prometheus的问题想解决
本书囊括Prometheus的原理、传统应用监控、Kubernetes监控、源码及拓展方法
是一本努力做到全面,努力帮助读者从了解、入门到实战,再到源码及优化的很用心的书
希望大家喜欢
欢迎加编辑威信zgx228,或提问题,或与专家实时讨论,我们会尽力给予帮助,加油!
内容提要
Prometheus是由SoundCloud开源的监控,是Google BorgMon监控的开源版本。伴随着容器及Kubernetes技术的兴起,Prometheus越来越受到大家的关注。本书讲解了Prometheus的原理、应用、源码和拓展,图文并茂、讲解全面。原理篇主要介绍了Prometheus的整体架构及与其他监控的对比和优势,让读者从整体上把握Prometheus的相关概念。应用篇从传统应用监控和Kubernetes监控两方面讲解Prometheus的安装、配置及实践,着重介绍Redis、MySQL server等常用中间件监控,并结合Kubernetes,详细讲解如何通过Prometheus监控容器集群,还对每个操作都进行了非常详尽的记录。源码与拓展篇从整体到局部详细剖析Prometheus的源码架构,并且结合实际生产环境二次定制Prometheus的部分功能,可加深读者对Prometheus的理解,也能很好地帮助读者提升Prometheus开发技能。
本书适合运维工程师、软件架构师、研发工程师及其他IT人士参考和阅读。
目 录
第1篇 Prometheus原理
第1章 监控
2
1.1 监控概览
2
1.2 基础资源监控
4
1.2.1 网络监控
4
1.2.2 存储监控
6
1.2.3 服务器监控
7
1.3 中间件监控
9
1.4 应用程序监控(APM)
10
1.5 日志监控
13
1.6 监控实现
14
1.6.1 总体架构
14
1.6.2 指标采集
15
1.6.3 数据处理
18
1.7 监控的发展趋势
21
1.8 本书主角——Prometheus
22
1.9 其他开源监控工具
26
1.9.1 Zabbix
26
1.9.2 Nagios
30
1.9.3 Open-Falcon
31
1.10 监控的对比
33
第2章 深入Prometheus设计
35
2.1 指标
35
2.1.1 Prometheus的指标定义
35
2.1.2 Prometheus的指标分类
36
2.1.3 Prometheus数据样本
40
2.2 数据采集
40
2.2.1 服务发现
42
2.2.2 数据采集
44
2.3 数据处理
45
2.3.1 重新定义标签
45
2.3.2 标签筛选
46
2.4 数据存储
46
2.4.1 本地存储
47
2.4.2 远程存储
50
2.5 数据查询
50
2.6 告警
52
54
2.7.1 联邦
54
2.7.2 Thanos
55
2.8 Prometheus并非监控银弹
59
第3章 数据存储
60
3.1 存储接口
60
3.2 本地存储
62
3.2.1 历史
63
3.2.2 核心概念
63
3.2.3 相关参数
69
3.2.4 本地存储接口
70
3.3 远端存储
71
3.3.1 总体架构
71
3.3.2 远端接口规范
71
3.3.3 相关参数
74
3.4 存储汇聚
77
第2篇 Prometheus在传统应用监控中的应用
第4章 Prometheus exporter详解
80
4.1 服务分类
80
4.2 数据规范
81
4.3 exporter简介
82
4.4 基于Go客户端编写一个exporter
84
4.5 Node exporter解析
87
4.6 Redis exporter解析
90
4.6.1 Redis exporter的应用
90
4.6.2 Redis exporter的工作原理
91
4.7 MySQL server exporter解析
93
4.7.1 MySQL server exporter的应用
93
4.7.2 MySQL server exporter的工作原理
94
4.8 深入探索Go客户端
96
第3篇 Prometheus在Kubernetes监控中的应用
第5章 Kubernetes监控方案
100
5.1 Heapster
101
5.2 kube-state-metrics
104
5.3 metrics-server
105
5.4 Prometheus
105
第6章 Prometheus的安装配置
107
6.1 手动安装Prometheus
107
6.2 安装Prometheus Operator
114
6.3 在Prometheus Operator中添加自定义的监控项
125
6.4 在Prometheus Operator中添加自定义告警
132
6.4.1 配置PrometheusRule
133
6.4.2 配置告警
138
6.5 Prometheus Operator的配置
144
6.5.1 自动发现配置
145
6.5.2 数据持久化配置
152
第7章 Prometheus监控Kubernetes之服务配置
159
7.1 静态配置
159
7.2 服务发现配置
164
第8章 Prometheus监控Kubernetes之监控对象
171
8.1 容器监控
172
8.1.1 Prometheus的配置方式
172
8.1.2 容器指标
174
8.2 apiserver监控
177
8.2.1 配置方式
177
8.2.2 apiserver指标
181
8.3 Service监控
182
8.4 kube-state-metrics监控
185
8.5 主机监控
186
第9章 Prometheus监控Kubernetes之数据展现
191
9.1 在Kubernetes集中安装Grafana
191
9.2 配置Grafana
200
9.2.1 数据源
200
9.2.2 Dashboard
201
9.3 插件
207
9.4 Grafana告警
212
9.4.1 邮件告警
212
9.4.2 钉钉告警
214
9.4.3 Grafana告警配置
215
第10章 Prometheus监控Kubernetes之告警
219
10.1 AlertManager简介
219
10.2 安装AlertManager
220
10.3 告警规则
225
10.4 webhook接收器
231
第4篇 Prometheus源码与拓展
第11章 Prometheus服务组件
240
11.1 Prometheus源码的目录结构
240
11.2 原生Prometheus的不足
242
11.3 源码改造——更改时区
243
11.3.1 源码修改
243
11.3.2 编译
244
11.3.3 功能验证
244
11.4 源码改造——用blog4go记录日志
245
11.4.1 引入blog4go库
245
11.4.2 设置日志回调函数
246
11.4.3 启动日志记录服务
246
11.4.4 配置config.xml
247
11.4.5 编译
248
11.4.6 验证服务
248
11.5 Prometheus的初始化
248
11.5.1 Prometheus性能调试
249
11.5.2 Context介绍
249
11.5.3 初始化服务组件
251
11.5.4 组件配置管理
257
11.5.5 启动服务组件
258
11.6 源码改造——MySQL规则存储
262
11.6.1 规则加载流程
262
11.6.2 表结构设计
262
11.6.3 规则加载模块
264
11.6.4 loadGroups改造
267
11.6.5 初始化
269
11.6.6 功能验证
269
11.7 数据采集
270
11.7.1 服务发现
270
11.7.2 指标采集
277
11.7.3 存储指标
289
11.8 通知管理
297
11.8.1 启动notifier服务
298
11.8.2 注册notifier
308
11.9 规则管理
311
11.9.1 规则调度
312
11.9.2 查询引擎
321
11.10 源码改造——不重复scrape及自带时间戳规则运算
327
11.10.1 实现思路
328
11.10.2 不重复scrape
328
11.10.3 自带时间戳规则运算
331
11.10.4 功能验证
343
第12章 AlertManager服务组件
348
12.1 接收告警
348
12.2 告警调度
351
12.3 告警匹配
356
12.4 告警处理
357
12.5 告警通知
362