作品简介

本书以一个名为EagleEye的项目为主线,介绍云、微服务等概念以及Spring Boot和Spring Cloud等诸多Spring项目,并介绍如何将EagleEye项目一步一步地从单体架构重构成微服务架构,进而将这个项目拆分成众多微服务,让它们运行在各自的Docker容器中,实现持续集成/持续部署,并最终自动部署到云环境(Amazon)中。针对在重构过程中遇到的各种微服务开发会面临的典型问题(包括开发、测试和运维等问题),本书介绍了解决这些问题的核心模式,以及在实战中如何选择特定Spring Cloud子项目或其他工具解决这些问题。

本书适合拥有构建分布式应用程序的经验、拥有Spring的知识背景以及对学习构建基于微服务的应用程序感兴趣的Java开发人员阅读。对于希望使用微服务构建基于云的应用程序,以及希望了解如何将基于微服务的应用部署到云上的开发人员,本书也具有很好的学习参考价值。

约翰·卡内尔(John Carnell)是一位知名云工程师,拥有20年的Java开发经验。他大部分时间都在使用AWS平台构建基于电话的微服务。他的日常工作主要是设计和构建跨Java、Clojure和Go等多种技术平台的微服务。

作品目录

  • 版权声明
  • 内容提要
  • 译者序
  • 前言
  • 资源与支持
  • 致谢
  • 关于本书
  • 关于作者
  • 关于封面插图
  • 第1章 欢迎迈入云世界,Spring
  • 1.1 什么是微服务
  • 1.2 什么是Spring,为什么它与微服务有关
  • 1.3 在本书中读者会学到什么
  • 1.4 为什么本书与你有关
  • 1.5 使用Spring Boot来构建微服务
  • 1.6 为什么要改变构建应用的方式
  • 1.7 云到底是什么
  • 1.8 为什么是云和微服务
  • 1.9 微服务不只是编写代码
  • 1.10 使用Spring Cloud构建微服务
  • 1.11 通过示例来介绍Spring Cloud
  • 1.12 确保本书的示例是有意义的
  • 1.13 小结
  • 第2章 使用Spring Boot构建微服务
  • 2.1 架构师的故事:设计微服务架构
  • 2.2 何时不应该使用微服务
  • 2.3 开发人员的故事:用Spring Boot和Java构建微服务
  • 2.4 DevOps工程师的故事:构建运行时的严谨性
  • 2.5 将视角综合起来
  • 2.6 小结
  • 第3章 使用Spring Cloud配置服务器控制配置
  • 3.1 管理配置(和复杂性)
  • 3.2 构建Spring Cloud配置服务器
  • 3.3 将Spring Cloud Config与Spring Boot客户端集成
  • 3.4 保护敏感的配置信息
  • 3.5 最后的想法
  • 3.6 小结
  • 第4章 服务发现
  • 4.1 我的服务在哪里
  • 4.2 云中的服务发现
  • 4.3 构建Spring Eureka服务
  • 4.4 通过Spring Eureka注册服务
  • 4.5 使用服务发现来查找服务
  • 4.6 小结
  • 第5章 使用Spring Cloud和Netflix Hystrix的客户端弹性模式
  • 5.1 什么是客户端弹性模式
  • 5.2 为什么客户端弹性很重要
  • 5.3 进入Hystrix
  • 5.4 搭建许可服务器以使用Spring Cloud和Hystrix
  • 5.5 使用Hystrix实现断路器
  • 5.6 后备处理
  • 5.7 实现舱壁模式
  • 5.8 基础进阶——微调Hystrix
  • 5.8 基础进阶微调Hystrix
  • 5.9 线程上下文和Hystrix
  • 5.10 小结
  • 第6章 使用Spring Cloud和Zuul进行服务路由
  • 6.1 什么是服务网关
  • 6.2 Spring Cloud和Netflix Zuul简介
  • 6.3 在Zuul中配置路由
  • 6.4 Zuul的真正威力:过滤器
  • 6.5 构建第一个生成关联ID的Zuul前置过滤器
  • 6.6 构建接收关联ID的后置过滤器
  • 6.7 构建动态路由过滤器
  • 6.8 小结
  • 第7章 保护微服务
  • 7.1 OAuth2简介
  • 7.2 从小事做起:使用Spring和OAuth2来保护单个端点
  • 7.3 使用OAuth2保护组织服务
  • 7.4 JSON Web Token与OAuth2
  • 7.5 关于微服务安全的总结
  • 7.6 小结
  • 第8章 使用Spring Cloud Stream的事件驱动架构
  • 8.1 为什么使用消息传递、EDA和微服务
  • 8.2 Spring Cloud Stream简介
  • 8.3 编写简单的消息生产者和消费者
  • 8.4 Spring Cloud Stream用例:分布式缓存
  • 8.5 小结
  • 第9章 使用Spring Cloud Sleuth和Zipkin进行分布式跟踪
  • 9.1 Spring Cloud Sleuth与关联ID
  • 9.2 日志聚合与Spring Cloud Sleuth
  • 9.3 使用Open Zipkin进行分布式跟踪
  • 9.4 小结
  • 第10章 部署微服务
  • 10.1 EagleEye:在云中建立核心基础设施
  • 10.2 超越基础设施:部署EagleEye
  • 10.3 构建和部署管道的架构
  • 10.4 构建和部署管道实战
  • 10.5 开始构建和部署管道:GitHub和Travis CI
  • 10.6 使服务能够在Travis CI中构建
  • 10.7 关于构建和部署管道的总结
  • 10.8 小结
  • 附录A 在桌面运行云服务
  • 附录B OAuth2授权类型
展开全部