猜你喜欢
微服务实践

微服务实践

书籍作者:乌姆什 ISBN:9787115498700
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:8451
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介
近些年来,微服务一直是非常热门的话题,关于微服务架构的讨论也是层出不穷。本书以贯穿整书的示例为出发点,由浅入深地阐述使用微服务的*佳实践,以及如何避免采用微服务架构可能带来的复杂性陷阱。本书从微服务架构本身的特征入手,讨论微服务组件的设计指导原则、有效通信的方式以及常见的安全挑战和数据模型的选择;然后进入微服务架构的测试部分,探讨微服务的测试挑战和解决方法、监控和扩展常用的实践以及如何将现有架构演变为微服务架构;*后总结微服务架构在设计和开发方面遇到的常见问题及解决方案。
作者简介
作者简介
Umesh Ram Sharma是一名软件开发工程师,在可扩展、分布式云服务应用的架构、设计及开发方面有8年以上的经验。他从印度卡纳塔克邦州开放大学获得信息技术专业的硕士学位。出于对微服务和Spring的兴趣,他成了J2EE、JavaScript、Struts、Hibernate和Spring方面的专家,也具有AWS、J2EE、MySQL、MongoDB、memchached、Apache、Tomcat和Hazelcast等技术的实践经验。

Umesh Ram Sharma目前是ZestMoney公司的首席软件工程师,帮助他的团队将当前项目迁移至微服务。闲暇时,他喜欢开车兜风、烹饪和参加新技术的各种大会。

译者简介
占红来是一位咨询师,致力于帮助客户和成就客户。曾主持过某世界500强等大型公司的软件一体化开发平台的测试能力提升等落地项目,得到客户的一致好评,并受邀再次合作。
刘博毕业于哈尔滨工业大学,是一位拥有十多年测试经验的软件工程师,主攻自动化测试、性能测试和架构调优领域,对这些领域流行的技术体系和架构风险都有准确的把握。他积极参加对外的技术论坛,把在IBM、活跃网络和思特沃克的经验积累加以总结并分享给业内相关人士,获得众多好评。
编辑推荐
目前微服务架构在软件开发领域得到了广泛应用,因为它可以将一个大规模的应用分而治之,从而分解成许多较小规模的微服务,这样在减少系统内部各组件依赖的同时,还可以让整个系统易于维护和扩展。采用微服务架构的应用可以很容易地修复其中某个微服务的故障,从而消除系统彻底宕机的可能性。本书使用Java语言,并以实际的样例来说明如何快速高效地构建和实施可扩展的微服务架构。
本书以微服务架构的简要介绍为切入点,将微服务架构与其他架构进行了相关比较,详细探讨了微服务组件的重要特点和微服务端点之间的通信方式,以及如何建立有效的数据模型,如何对微服务进行测试和快速部署,然后总结了软件应用从单体架构迁移至微服务架构的****实践,zui后着眼于微服务架构的监控、扩展和故障排除,可以为开发人员从头实现微服务架构打下坚实的基础。

读者将学到以下内容:
■ 了解服务发现和外部配置在微服务整体架构中所扮演的角色;
■ 学习如何在事件驱动的微服务中使用消息代理;
■ 学习如何在不同组件之间混合使用各种数据管理策略;
■ 基于Spring Boot的开发环境对微服务进行多种类型的测试;
■ 将持续集成应用于微服务架构中;
■ 使用多种工具来监控和扩展自己的微服务应用。
目录
目录

第 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
短评

好书好书好书好书好书好书好书好书好书好书好书好书

2019-03-06 02:19:21