微服务是一种架构风格和模式:将复杂系统拆解为协同工作的小型服务,以此构建大型业务服务。微服务是自治、自包含且可独立部署的服务。当今世界上的许多企业将微服务作为默认的架构标准来构建面向服务的大型企业级应用。
作为一种编程框架,Spring框架在开发者社区流行很多年了。使用SpringBoot不再需要重量级应用容器,并且它还支持部署轻量级无服务器应用。
Spring Cloud结合了Netflix的许多OSS开源组件,提供了一个运行和管理大型微服务架构的生态系统;还支持负载均衡、服务注册、服务监控和服务网关,等等。
然而,微服务也带来了一些挑战,例如服务的监控、管理、分发、扩容和发现等,尤其是当大规模部署微服务时。如果在采用微服务架构之前不解决这些常见的问题,通常会导致灾难性的后果。
本文带你掌握响应式微服务设计原则,轻松构建大规模、可扩展的互联网级微服务。
限于文章篇幅原因,只能以截图的形式展示出来,有需要的小伙伴可以文末获取↓↓↓
目录总览
内容概览
第1章微服务揭秘
本章将详细介绍从传统的单体架构到微服务架构的演进过程,还会介绍微服务的定义、概念和特性。
-
微服务的演进。
-
微服务架构的定义及相关示例。
-
微服务架构的概念和特性。
第2章相关架构风格和用例
本章会分析其他架构风格,并探究微服务和其他热词之间的相似性和关联性。这些热词包括面向服务架构(SOA)、十二要素应用、无服务器计算、Lambda架构、DevOps、云计算、容器和响应式微服务。十二要素应用定义了面向云计算应用开发的一系列软件工程原则。本章还会分析微服务的典型用例,并介绍用于快速开发微服务架构的一些流行框架。
-
微服务架构与SOA和十二要素应用的关系。
-
微服务架构与无服务器计算和Lambda架构风格(通常用于大数据、认知计算和物联网环境中)之间的关联。
-
微服务的支撑性架构元素,例如云计算、容器和DevOps。
-
响应式微服务。
-
微服务架构的典型用例。
-
一些流行的微服务框架。
第3章用Spring Boot构建微服务
本章着重代码示例,从微服务理论转向具体实践。首先介绍Spring Boot框架,然后讨论如何用Spring Boot构建与前一章讲过的原则和特征相一致的RESTful微服务,最后介绍Spring Boot为开发生产就绪的微服务提供的一些特性。
-
搭建最新的Spring开发环境。
-
利用Spring Framework 5和Spring Boot开发RESTful服务。
-
利用Spring WebFlux和Spring Messaging构建响应式微服务。
-
利用Spring Security和OAuth2保护微服务。
-
实现跨域微服务。
-
利用Swagger生成Spring Boot微服务API文档。
-
利用Spring Boot Actuator开发生产就绪的微服务。
第4章应用微服务概念
本章会研究在实际项目中实现微服务的一些技术挑战,并提供一些准则来指导关键的设计决策,确保成功开发微服务应用,还会介绍一些解决方案和设计模式来消除针对微服务的一系列常见顾虑。
-
不同设计决策之间的权衡取舍。
-
开发微服务时应当考虑的设计模式。
-
设计一流的可扩展微服务的通用指南。
第5章微服务能力模型
-
微服务生态系统的能力模型。
-
每种能力的简介及其在微服务生态系统中的重要性。
-
支撑这些能力的可选工具和技术。
-
微服务成熟度模型。
第6章微服务演进案例研究
本章会引入一个虚构的廉价航空公司BrownField Airline(BF),探究如何将其从一个单体式客运销售和服务(PSS)应用向下一代微服务架构演进。本章会深入研究PSS应用,并在遵循上一章介绍的设计原则和实践方法的基础上,解释该应用从一个单体系统向一个基于微服务的架构迁移的挑战、方法和演进步骤。该案例研究旨在还原真实场景,从而明确相关架构概念。
-
以BrownField航空公司的PSS应用为例,研究从单体系统迁移到基于微服务系统的真实案例。
-
单体应用迁移到微服务的各种途径和迁移策略。
-
用Spring框架的组件设计一个全新的现代微服务系统来替代PSS应用。
-
使用Spring框架和Spring Boot实现微服务。
第7章用Spring Cloud组件扩展微服务
本章会详细介绍Spring Cloud项目中的各种组件,比如Eureka、Zuul、Ribbon和Spring Config,并将这些组件放置在第4章介绍的微服务能力模型的相应位置。本章会演示如何使用Spring Cloud组件对前一章开发的BrownField航空公司的PSS微服务系统进行扩展。
-
用Spring Cloud Config服务器将配置信息外部化。
-
用Eureka服务器实现服务的注册和发现。
-
讲解Zuul作为服务代理和网关的重要性。
-
实现微服务的自动注册和自动发现。
-
用Spring Cloud消息机制实现异步响应式微服务编排。
第8章微服务的日志管理和监控
本章会探讨日志管理和监控在微服务部署中的必要性和重要性,还会进一步研究用一系列候选架构和技术来解决日志和监控问题时面临的各种挑战及解决办法。
-
日志管理的不同方案、工具和技术。
-
使用Spring Cloud Sleuth追踪微服务。
-
端到端监控微服务的不同工具。
-
使用Spring Cloud Hystrix和Turbine进行链路监控。
-
使用数据湖进行业务数据分析。
第9章用Docker容器化微服务
本章介绍虚拟机镜像和微服务容器化部署的概念和两者之间的关联,然后介绍如何为BrownField航空公司PSS微服务系统构建Docker镜像,这些微服务都是用Spring Boot和Spring Cloud开发的,最后介绍如何在类生产环境中管理、维护和部署Docker镜像。
-
容器化的概念及其和微服务上下文的关系。
-
将微服务构建并部署为Docker镜像和容器。
-
以AWS为例展示基于云的Docker部署。
第10章用Mesos和Marathon扩展容器化的微服务
本章会介绍基本的扩容方法和在部署大规模微服务时使用Mesos和Marathon作为基础设施编排层对于云环境中优化资源利用的必要性,还会详细介绍在云环境中安装Mesos和Marathon的方法,最后会演示如何在Mesos和Marathon环境中管理Docker化的微服务。
-
对容器化的Spring Boot微服务进行扩容的可选方案。
-
基础设施抽象层和容器编排软件的必要性。
-
从微服务的上下文中理解Mesos和Marathon。
-
用Mesos和Marathon管理BrownField航空公司Docker化的PSS微服务。
第11章微服务开发生命周期
类似于软件开发生命周期,若想成功实现微服务架构,需要理解微服务开发生命周期。
本章以BrownField航空公司的PSS微服务为例,着重介绍微服务的开发流程和实践。此外,本章会阐述组建开发团队的最佳实践、开发方法论、自动化测试、微服务持续交付,这些都和DevOps实践相一致,最后会阐明微服务分布式治理方法中参考架构的重要性。
-
研究微服务开发中的一些实践要点。
-
互联网级微服务在自动化开发、测试和部署方面的最佳实践。
限于文章篇幅原因,就展示到这里了,有需要的小伙伴可以查看下方名片↓↓↓