前言
本书提供了实现大型响应式微服务的实用方法和指导原则,并通过示例全面 讲解如何构建微服务。本书深入介绍了Spring Boot、Spring Cloud、 Docker、Mesos和Marathon,还会教授如何用Spring Boot部署自治服务,而 无须使用重量级应用服务器,并介绍Spring Cloud框架的各项能力、如何使 用Docker实现容器化,以及如何使用Mesos和Marathon抽象出计算资源和控制 整个集群。
从目录看起
由于全文内容过多总共四百多页篇幅过多,没法全部给大家展示出来,在这里便给大家展示部分内容
第1章,微服务揭秘
本章通过一些实例介绍了微服务的基本原理。 本章介绍了从传统单体应用到微服务架构的演进过程、现代应用架构的一些 原则和思维方式上的转变,还总结了大多数成功的微服务项目实现的共同特 征,最后讨论了微服务架构的优势。
下一章会分析微服务架构和其他架构风格之间的联系,还会介绍微服务的常 见用例。
第2章,相关架构风格和用例
本章介绍了微服务架构和其他一些流行的架构风格之间的关系。 本章首先介绍了微服务与SOA和十二要素应用的关系,然后分析了微服务架构 和其他架构(比如无服务器计算架构和Lambda架构)之间的联系,还介绍了 微服务与云计算以及DevOps结合使用的好处,随后分析了一些来自不同行业 并成功采用微服务的企业的案例,最后罗列了一些比较成熟的微服务框架。
为了更好地说明本章所讲的内容,下一章会开发一些微服务实例。
第3章,用Spring Boot构建微服务
本章介绍了Spring Boot及其构建生产就绪微服务应用的关键特性。 本章通过比较前几代Web应用,说明了Spring Boot有助于开发人员开发可用 的微服务。然后介绍了基于HTTP和基于消息的异步响应式微服务,并通过实 例研究了如何实现微服务所要求的一些关键能力,比如安全性、HATEOAS和跨 域,等等。本章还介绍了Spring Boot Actuator如何帮助运维团队、如何定 制功能满足需求,以及微服务API文档化。最后将本章所讲知识融入了完整的 示例。
下一章将放缓脚步,通过常见实践来解析微服务项目。
第4章,应用微服务概念
本章介绍了如何处理微服务开发中的一些实际场景。 首先介绍了多种可选方案和设计模式,它们可用于解决常见的微服务问题; 然后讨论了开发大型微服务系统时面临的一系列挑战,以及如何有效应对。
下一章将建立一个微服务的能力成熟度参考模型。
第5章,微服务能力模型
本章受到了业界成功的微服务项目实现的启发,基于最佳实践、常用模式和 设计准则,建立了一个与技术和工具无关的微服务能力模型。该能力模型有 助于组织思考自己的微服务实践和了解采用微服务之前需要考虑的方方面面。
本章论述了该能力模型的各项能力,介绍了这些能力对微服务实现的重要 性,还讨论了支撑这些能力的各种可选技术方案,最后研究了组织采用微服 务的成熟度模型。
下一章以一个使用微服务架构的实际问题和模型为例,介绍如何将所讲内容 应用于实际项目。
第6章,微服务演进案例研究
本章介绍了如何用微服务架构来处理实际用例。 本章研究了在现实世界中从单体应用向微服务演进的不同阶段,也评估了迁 移单体应用的多种方式的利弊和障碍,最后讲解了对BrownField航空公司的 应用进行端到端的微服务设计的过程,还验证了设计和实现成熟微服务的过 程。
下一章将介绍如何通过Spring Cloud项目将开发好的BrownField航空公司PSS 微服务转型为互联网级的部署。
第7章,用Spring Cloud组件扩展微服务
本章介绍了如何利用Spring Cloud项目对符合十二要素原则的Spring Boot微 服务进行扩展,并在上一章开发的BrownField航空公司PSS微服务项目上进行 了实践。 本章介绍了用于外部化微服务配置的Spring配置服务器,以及如何部署配置 服务的高可用集群,也介绍了用于负载均衡、动态服务注册和发现的Eureka 服务器。然后通过实现Zuul代理,探究了API网关的实现。最后使用Spring Cloud Streams实现了响应式微服务集成。 BrownField航空公司的PSS微服务系统已经实现互联网级部署了。
下一章会讨 论Spring Cloud的其他组件,比如Hyterix和Sleuth等。
第8章,微服务的日志管理和监控
本章介绍了实现互联网级微服务架构时在日志和监控方面的挑战。 本章探讨了集中式日志管理的各种方案,也介绍了如何使用Elasticsearch、 Logstash和Kibana(ELK)定制集中式日志管理方案。为了说明分布式追踪, 我们用Spring Cloud Sleuth升级了BrownField航空公司的微服务。 本章后半部分深入研究了微服务监控方案所需的各项能力和各种监控方式, 随后介绍了一些监控微服务的工具。 为了监控服务通信中出现的延迟和故障,我们用Spring Cloud Hystrix和 Turbine增强了BrownField航空公司的微服务,还演示了在系统发生故障时如 何使用断路器模式来退回到备用服务。 最后讲到了数据湖的重要性以及如何在微服务的上下文中集成数据湖架构。 微服务管理是实现大规模微服务部署时必须应对的另一个重要挑战。
下一章 会介绍如何使用容器简化微服务管理。
第9章,用Docker容器化微服务
本章探讨了云环境对于实现互联网级微服务的必要性。 本章介绍了容器的概念并比较了容器和传统的虚拟机,还介绍了Docker的基 础知识,解释了Docker镜像、容器和注册表的概念,并在微服务的上下文中 阐释了容器的重要性和优势。 本章随后通过容器化BrownField微服务转到了一个实操的例子,演示了如何 将之前开发的Spring Boot微服务部署到Docker。通过研究本地容器注册表和 用于上传/下载容器化微服务的Docker Hub,讲解了容器注册表的概念。 最后介绍了如何在AWS云环境中部署容器化的BrownField微服务。
第10章,用Mesos和Marathon扩展容器化的微服务
本章介绍了应用程序自动扩容的不同方面和高效管理大规模Docker化微服务 中容器编排的重要性。 在详细介绍Mesos和Marathon前,我们研究了不同的容器编排工具。我们在 AWS云环境中实现了Mesos和Marathon,并演示了如何管理为BrownField公司 PSS应用开发的Docker化微服务。 前面介绍了成功实现微服务所需要的所有核心能力及支撑技术。除了技术, 成功的微服务实现也需要相应的流程和实践方法。
下一章会从流程和实践的 角度讲解微服务。
第11章,微服务开发生命周期
本章介绍了微服务和DevOps的关系,讨论了开发微服务时的一系列实践要 点,还详细介绍了微服务开发的生命周期。 本章后面的部分介绍了如何将从开发到生产的整个微服务交付管道自动化, 并介绍了一系列工具和技术,最后探讨了微服务治理中标准类库和参考架构 的重要性。 全面掌握本书介绍的微服务概念、挑战、最佳实践即及各项能力是成功开发 大规模微服务的最佳秘诀。
本书各章的内容都很实用,细致讲授了如何将微服务技术与业务相结合。通 过一系列示例(包括一个旅游业的案例研究),书中阐述了微服务架构的实 现,涉及Spring框架、Spring Boot和Spring Cloud。这些都是用于开发和部 署大规模可扩展微服务的强大且久经考验的工具。本书基于Spring框架的最 新规范编写。借助本书,你可以快速构建互联网级现代Java应用。