所有分类
  • 所有分类
  • 在线课堂
  • 精品课程
  • 课件资料
  • 标准资料
  • 资料手册
  • 图纸模型
文档家VIP会员升级

精通Spring Cloud微服务架构 [美]闵可夫斯基 2019年版

精通Spring Cloud微服务架构 

作者: [美]闵可夫斯基 

出版时间: 2019年版 

内容简介 

  本书详细阐述了与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  [email protected] 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  小结 198 

第10章  其他配置和发现功能 199 

10.1  使用Spring Cloud Consul 199 

10.1.1  运行Consul代理 200 

10.1.2  在客户端集成 201 

10.1.3  服务发现 201 

10.1.4  分布式配置 208 

10.2  使用Spring Cloud Zookeeper 212 

10.2.1  运行Zookeeper 213 

10.2.2  服务发现 214 

10.2.3  分布式配置 216 

10.3  小结 217 

第11章  消息驱动的微服务 219 

11.1  了解Spring Cloud Stream 219 

11.2  构建消息传递系统 220 

11.2.1  启用Spring Cloud Stream 220 

11.2.2  声明和绑定频道 222 

11.2.3  自定义与RabbitMQ代理的连接 224 

11.2.4  与其他Spring Cloud项目集成 228 

11.3  发布/订阅模型 231 

11.3.1  运行示例系统 232 

11.3.2  扩展和分组 233 

11.4  配置选项 238 

11.4.1  Spring Cloud Stream属性 238 

11.4.2  绑定属性 239 

11.5  高级编程模型 240 

11.5.1  制作消息 240 

11.5.2  转换 240 

11.5.3  有条件地使用消息 241 

11.6  使用Apache Kafka 242 

11.6.1  运行Kafka 242 

11.6.2  自定义应用程序设置 243 

11.6.3  Kafka Streams API支持 244 

11.6.4  配置属性 245 

11.7  多个绑定器 245 

11.8  小结 247 

第12章  保护API的安全 249 

12.1  为Spring Boot启用HTTPS 249 

12.2  保证发现服务器的安全 251 

12.2.1  注册安全的应用程序 251 

12.2.2  通过HTTPS服务Eureka 251 

12.3  保证配置服务器的安全 255 

12.3.1  加密和解密 255 

12.3.2  配置客户端和服务器的身份验证 257 

12.4  使用OAuth2进行授权 259 

12.4.1  OAuth2简介 259 

12.4.2  构建授权服务器 260 

12.4.3  客户端配置 264 

12.4.4  使用JDBC后端存储 266 

12.4.5  服务间授权 269 

12.4.6  在API网关上启用SSO 273 

12.5  小结 274 

第13章  测试Java微服务 275 

13.1  测试策略 275 

13.2  测试Spring Boot应用程序 277 

13.2.1  构建示例应用程序 278 

13.2.2  与数据库集成 279 

13.3  单元测试 280 

13.4  组件测试 282 

13.4.1  使用内存数据库运行测试 282 

13.4.2  处理HTTP客户端和服务发现 283 

13.4.3  实现示例测试 285 

13.5  集成测试 286 

13.5.1  对测试进行分类 286 

13.5.2  捕获HTTP流量 287 

13.6  契约测试 289 

13.6.1  使用Pact 289 

13.6.2  使用Spring Cloud Contract 294 

13.7  性能测试 301 

13.8  小结 305 

第三部分  Docker支持和Spring Cloud平台 

第14章  Docker支持 309 

14.1  关于Docker 309 

14.2  安装Docker 311 

14.3  常用的Docker命令 312 

14.3.1  运行和停止容器 312 

14.3.2  列出并删除容器 313 

14.3.3  提取和推送镜像 314 

14.3.4  构建镜像 315 

14.3.5  创建网络 316 

14.4  创建具有微服务的Docker镜像 316 

14.4.1  Dockerfile 317 

14.4.2  运行容器化微服务 319 

14.4.3  使用Maven插件构建镜像 321 

14.4.4  高级Docker镜像 323 

14.5  持续交付 325 

14.5.1  将Jenkins与Docker集成 325 

14.5.2  构建管道 327 

14.6  使用Kubernetes 330 

14.6.1  概念和组件 331 

14.6.2  通过Minikube以本地方式运行Kubernetes 332 

14.6.3  部署应用程序 333 

14.6.4  维护集群 336 

14.7  小结 338 

第15章  云平台上的Spring微服务 339 

15.1  Pivotal Cloud Foundry 339 

15.1.1  使用模式 340 

15.1.2  准备应用程序 341 

15.1.3  部署应用程序 343 

15.1.4  维护 347 

15.2  Heroku平台 352 

15.2.1  部署方法 352 

15.2.2  准备应用程序 355 

15.2.3  测试部署 356 

15.3  小结 358 

 

资源下载
资源下载
0
文档家VIP会员升级
没有账号?注册  忘记密码?

社交账号快速登录

微信扫一扫关注
扫码关注后会自动登录