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

请输入您要查询的图书:

 

书名 精通Spring Cloud微服务架构
分类
作者 (美)皮奥特·闵可夫斯基
出版社 清华大学出版社
下载
简介
内容推荐
本书详细阐述了与Spring Cloud微服务框架相关的基本解决方案,主要包括微服务简介、使用微服务的Spring、Spring Cloud概述、服务发现、使用Spring Cloud Config进行分布式配置、微服务之间的通信、高级负载均衡和断路器、使用API网关进行路由和过滤、分布式日志记录和跟踪、其他配置和发现功能、消息驱动的微服务、保护API的安全、测试Java微服务、Docker支持、云平台上的Spring微服务等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。
本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。
目录
第一部分 微服务架构和Spring Cloud项目基础知识
第1章 微服务简介 3
1.1 微服务的优点 3
1.2 使用Spring Framework构建微服务 4
1.3 云原生应用程序开发方法 4
1.4 了解微服务架构 5
1.4.1 理解服务发现的必要性 7
1.4.2 服务之间的通信 9
1.4.3 故障和断路器 11
1.5 小结 11
第2章 使用微服务的Spring 13
2.1 关于Spring Boot 13
2.2 使用Spring Boot开发应用程序 15
2.2.1 自定义配置文件 17
2.2.2 创建RESTful Web服务 20
2.3 API文档 23
2.3.1 联合使用Swagger 2和Spring Boot 23
2.3.2 使用Swagger UI测试API 24
2.4 Spring Boot执行器功能 27
2.4.1 应用信息 27
2.4.2 健康信息 29
2.4.3 指标信息 30
2.5 开发者工具 32
2.6 将应用程序与数据库集成 33
2.7 运行应用程序 36
2.8 小结 40
第3章 Spring Cloud概述 41
3.1 从基础开始 41
3.1.1 Netflix OSS 42
3.1.2 使用Eureka进行服务发现 43
3.1.3 使用Zuul路由 43
3.1.4 使用Ribbon实现负载均衡 44
3.1.5 编写Java HTTP客户端 44
3.1.6 Hystrix的延迟和容错能力 44
3.1.7 使用Archaius进行配置管理 45
3.2 发现和分布式配置 45
3.2.1 可选替代方案—Consul 46
3.2.2 Apache Zookeeper 46
3.2.3 其他项目 47
3.3 使用Sleuth进行分布式跟踪 47
3.4 消息传递和集成 48
3.5 云平台支持 49
3.6 其他有用的库 50
3.6.1 安全性 51
3.6.2 自动化测试 51
3.6.3 集群功能 51
3.7 项目概述 51
3.8 版本列车 52
3.9 小结 54
第二部分 微服务架构常见元素和Spring Cloud实现
第4章 服务发现 57
4.1 在服务器端运行Eureka 57
4.2 在客户端启用Eureka 59
4.2.1 关机时取消注册 60
4.2.2 以编程方式使用发现客户端 62
4.3 高级配置设置 63
4.3.1 刷新注册表 63
4.3.2 更改实例标识符 65
4.3.3 选择使用IP地址 66
4.3.4 响应缓存 66
4.4 启用客户端和服务器之间的安全通信 67
4.5 Eureka API 69
4.6 副本和高可用性 70
4.6.1 样本解决方案的架构 70
4.6.2 构建示例应用程序 71
4.6.3 故障转移 75
4.7 区域 76
4.7.1 具有独立服务器的区域 77
4.7.2 构建示例应用程序 78
4.8 小结 80
第5章 使用Spring Cloud Config 进行分布式配置 83
5.1 HTTP API资源简介 84
5.2 构建服务器端应用程序 86
5.3 构建客户端应用程序 87
5.4 客户端引导方法 88
5.5 存储库后端类型 91
5.5.1 文件系统后端 91
5.5.2 Git后端 92
5.5.3 Vault后端 96
5.6 其他功能 98
5.6.1 启动失败和重试 98
5.6.2 保护客户端的安全 99
5.7 自动重新加载配置 99
5.7.1 解决方案架构 99
5.7.2 使用@RefreshScope重新加载配置 100
5.7.3 使用来自消息代理的事件 103
5.7.4 监视Config Server上的存储库更改 104
5.8 小结 108
第6章 微服务之间的通信 109
6.1 不同类型的通信 109
6.2 使用Spring Cloud进行同步通信 109
6.3 使用Ribbon执行负载均衡 110
6.3.1 使用Ribbon客户端启用微服务之间的通信 110
6.3.2 静态负载均衡配置 111
6.3.3 调用其他服务 112
6.4 将RestTemplate与服务发现结合使用 115
6.5 使用Feign客户端 118
6.5.1 对不同区域的支持 118
6.5.2 为应用程序启用Feign 119
6.5.3 继承支持 123
6.5.4 手动创建客户端 124
6.5.5 客户端的自定义 124
6.6 小结 126
第7章 高级负载均衡和断路器 127
7.1 负载均衡规则 127
7.1.1 WeightedResponseTime规则 128
7.1.2 引入Hoverfly进行测试 128
7.1.3 测试规则 129
7.2 自定义Ribbon客户端 131
7.3 带Hystrix的断路器模式 133
7.3.1 使用Hystrix构建应用程序 133
7.3.2 跳闸断路器 137
7.4 监控延迟和容错 140
7.4.1 公开Hystrix的指标流 141
7.4.2 Hystrix仪表板 142
7.5 故障和带有Feign的断路器模式 149
7.5.1 重试与Ribbon的连接 149
7.5.2 Hystrix对Feign的支持 150
7.6 小结 153
第8章 使用API网关进行路由和过滤 155
8.1 使用Spring Cloud Netflix Zuul 155
8.1.1 构建网关应用程序 156
8.1.2 与服务发现集成 157
8.1.3 自定义路由配置 158
8.1.4 管理端点 161
8.1.5 提供Hystrix回退bean 162
8.1.6 Zuul过滤器 164
8.2 使用Spring Cloud Gateway 166
8.2.1 为项目启用Spring Cloud Gateway 167
8.2.2 内置谓词和过滤器 168
8.2.3 微服务的网关 170
8.2.4 与服务发现集成 172
8.3 小结 173
第9章 分布式日志记录和跟踪 175
9.1 微服务的最佳日志记录实践 175
9.2 使用Spring Boot记录日志 177
9.3 使用ELK Stack集中日志 179
9.3.1 在机器上设置ELK堆栈 180
9.3.2 将应用程序与ELK Stack集成 181
9.4 Spring Cloud Sleuth 188
9.4.1 将Sleuth与应用程序集成 189
9.4.2 使用Kibana搜索事件 190
9.4.3 集成Sleuth和Zipkin 192
9.5
序言
开发、部署和运营云应用程序应该像本地应用程序
一样简单。这应该是任何云平台、库或工具背后的管理
原则。Spring Cloud可以轻松地为云开发JVM应用程序
。本书将介绍Spring Cloud并帮助开发人员掌握其功能
。本书首先介绍如何配置Spring Cloud服务器并运行
Eureka服务器以启用服务注册和发现;然后再深入剖析
与负载均衡和断路相关的技术,包括利用Feign客户端
的所有功能;最后讨论和研究高级主题,包括如何为
Spring Cloud实现分布式跟踪解决方案并构建消息驱动
的微服务架构。本书适合的读者本书对热衷于利用
Spring Cloud的开发人员有很强的吸引力。Spring
Cloud是一个开源库,可帮助开发人员快速构建分布式
系统。了解Java和Spring Framework将对本书的学习
很有帮助,但之前不需要接触Spring Cloud。本书内容
综述本书的写作思路明确,结构简单易懂。全书共分为
3个部分,第一部分是“微服务架构和Spring Cloud项
目基础知识”,包括第1章~第3章,详细介绍了微服务
、Spring Boot和Spring Cloud的基础知识。? 第1章
“微服务简介”,将介绍微服务架构、云环境等。读者
将学习并理解基于微服务的应用程序和一体化应用程序
之间的区别,同时了解如何迁移到微服务应用程序。?
第2章“使用微服务的Spring”,将介绍Spring Boot
框架。本章将详细说明如何有效地使用Spring Boot框
架来创建微服务应用程序。此外还将介绍使用Spring
MVC注解创建REST API、使用Swagger2提供API文档,
以及使用Spring Boot Actuator端点公开运行状况检
查和指标数据等主题。? 第3章“Spring Cloud概述”
,将简要介绍作为Spring Cloud一部分的主要项目。它
将侧重于说明Spring Cloud实现的主要模式并将它们分
配给特定项目。本书的第二部分是“微服务架构常见元
素和Spring Cloud实现”,包括第4章~第13章,详细
介绍了Spring Cloud各个组件的配置和应用。? 第4章
“服务发现”,将使用Spring Cloud Netflix Eureka
描述服务发现模式。本章将详细说明如何在独立模式下
运行Eureka服务器,以及如何使用对等副本运行多个服
务器实例。此外还将介绍如何在客户端启用发现并在不
同区域中注册这些客户端。? 第5章“使用Spring
Cloud Config进行分布式配置”,将详细介绍如何在应
用程序中使用Spring Cloud Config进行分布式配置。
本章将说明如何使用Spring Cloud Bus启用属性源的
不同后端存储库并推送更改通知。通过比较发现第一个
引导程序和配置第一个引导程序方法,详细说明了发现
服务和配置服务器之间的集成。? 第6章“微服务之间
的通信”,将描述参与服务间通信的最重要元素:HTTP
客户端和负载均衡器。本章将详细介绍如何在有或没有
服务发现的情况下使用Spring RestTemplate、Ribbon
和Feign客户端。? 第7章“高级负载均衡和断路器”,
将描述与微服务之间的服务间通信相关的更高级主题。
本章将详细介绍如何使用Ribbon客户端实现不同的负载
均衡算法,使用Hystrix启用断路器模式并使用Hystrix
仪表板监控通信统计信息。? 第8章“使用API网关进行
路由和过滤”,将比较用作Spring云应用程序的API网
关和代理的两个项目:Spring Cloud Netlix Zuul和
Spring Cloud Gateway。本章将详细介绍如何将它们
与服务发现集成,并创建简单而更高级的路由和过滤
规则。? 第9章“分布式日志记录和跟踪”,将介绍一
些流行的工具,用于收集和分析由微服务生成的日志记
录和跟踪信息。本章将说明如何使用Spring Cloud
Sleuth附加跟踪信息和关联消息,此外还将运行与
Elastic Stack集成的示例应用程序,以便发送日志消
息,并使用Zipkin来收集跟踪的信息。? 第10章“其他
配置和发现功能”,将介绍两种用于服务发现和分布式
配置的流行产品:Consul和ZooKeeper。本章将详细说
明如何在本地运行这些工具,并将Spring Cloud应用程
序与它们集成在一起。? 第11章“消息驱动的微服务”
,将指导开发人员如何在微服务之间提供异步的、消息
驱动的通信。本章将详细介绍如何将RabbitMQ和Apache
Kafka消息代理与Spring Cloud应用程序集成,以实现
异步一对一和发布/订阅通信方式。? 第12章“保护API
的安全”,将描述保护微服务的各种方法。本章将实现
一个由所有先前引入的元素组成的系统,这些元素通过
SSL相互通信。此外还将详细说明如何使用OAuth2和JWT
令牌来给传入API的请求授权。? 第13章“测试Java微
服务”,将描述微服务测试的不同策略。它将侧重于演
示由使用者驱动的契约测试,这尤其适用于基于微服务
的环境。此外还将介绍如何使用Hoverfly、Pact、
Spring Cloud Contract、Gatling等框架来实现不同
类型的自动化测试。本书的第三部分是“Docker支持和
Spring Cloud平台”,包括第14章~第15章,详细介
绍了Docker容器、Pivotal Cloud Foundry和Heroku云
平台。? 第14章“Docker支持”,将简要介绍Docker
。它将侧重于描述最常用的Docker命令,这些命令用于
在容器化环境中运行和监视微服务。此外还将详细说明
如何使用流行的持续集成服务器(Jenkins)构建和运
行容器,并将它们部署在Kubernetes平台上。? 第15章
“云平台上的Spring微服务”,将介绍两个支持Java应
用程序的流行云平台:Pivotal Cloud Foundry和
Heroku。本章将详细说明如何使用命令行工具或Web控
制台在这些平台上部署、启动、扩展和监视应用程序。
阅读基础要顺利阅读本书并完成所有代码示例,读者应
具备以下基础条件:? 有效的互联网连接? Java 8+?
Docker? Maven ? Git客户端下载示例代码文件读者可
以从www.packtpub.com下载本书的示例代码文件。具
体步骤如下:(1)登录或注册www.packtpub.com。(
2)选择Support(支持)选项卡。(3)单击Code
Downloads&Errata(代码下载和勘误表)。(4)在
Search(搜索)框中输入图书名称Mastering Spring
Cloud,然后按照屏幕上的说明进行操作。下载文件后
,请确保使用最新版本解压缩或解压缩文件夹:?
WinRAR/7-Zip(Windows系统)? Zipeg/iZip/UnRarX
(Mac系统)? 7-Zip/PeaZip(Linux系统)该书的代
码包也已经在GitHub上托管,网址为
https://github.com/PacktPublishing/
Mastering-Spring-Cloud,欢迎访问。本书约定本书
中使用了许多文本约定。(1)CodeInText:表示文本
中的代码字、数据库表名、文件夹名、文件名、文件扩
展名、路径名、虚拟URL、用户输入和Twitter句柄等。
以下段落就是一个示例。“HTTP API端点
(http://localhost:8889/client-service-
zone3.yml)的最后一个可用版本,返回与输入文件相
同的数据。”(2)有关代码块的设置如下所示。
(dependency)
(groupId)org.springframework.cloud(/groupId)
(artifactId)spring-cloud-config-
server(/artifactId)(/dependency)
(3)当我们希望引起读者对代码块的特定部分的
注意时,相关的行或项目以粗体显示。
spring: rabbitmq: host: 192.168.99.100
port: 5672
(4)任何命令行输入或输出都采用如下所示的粗
体代码形式。
$ curl -H“X-Vault-Token:client”-X GET
http://192.168.99.100:8200/v1/secret/client-
service(5)本书还使用了以下两个图标。 表示警告
或重要的注意事项。 表示提示或小技巧。关于作者
Piotr Mińkowski拥有超过10年的银行和电信行业开发
人员和架构师的工作经验。他擅长Java以及与之相关的
技术、工具和框架。目前他在波兰的移动运营商Play公
司工作,负责IT系统架构。他帮助该公司完成了从一体
化应用程序/面向服务的架构(SOA)到基于微服务的架
构的迁移工作,还帮助建立了完整的持续集成和持续交
付环境。关于审稿者Samer ABDELKAFI拥有超过13年的
软件架构师和工程师工作经验,主要专注于开源技术。
他为不同领域的众多项目做出了贡献,如银行、保险、
教育、公共服务和公用事业计费等。2016年年底,他创
建了DEVACT,一家专门从事信息技术咨询的公司。除了
日常工作之外,Samer还经常在他的博客中分享自己的
经验,撰写与Java和Web技术相关的文章。
导语
Spring Cloud可以轻松地为云开发JVM应用程序。本书将介绍Spring Cloud并帮助开发人员掌握其功能。
本书首先介绍如何配置Spring Cloud服务器并运行Eureka服务器以启用服务注册和发现;然后再深入剖析与负载均衡和断路相关的技术,包括利用Feign客户端的所有功能;最后讨论和研究高级主题,包括如何为Spring Cloud实现分布式跟踪解决方案并构建消息驱动的微服务架构。
随便看

 

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

 

Copyright © 2002-2024 101bt.net All Rights Reserved
更新时间:2025/4/1 5:11:11