前言

微服务是一种架构风格和模式:将复杂系统拆解为协同工作的小型服务,以此构建大型业务服务。微服务是自治、自包含且可独立部署的服务。当今世界上的许多企业将微服务作为默认的架构标准来构建面向服务的大型企业级应用。

作为一种编程框架,Spring框架在开发者社区流行很多年了。使用SpringBoot不再需要重量级应用容器,并且它还支持部署轻量级无服务器应用。

Spring Cloud结合了Netflix的许多OSS开源组件,提供了一个运行和管理大型微服务架构的生态系统;还支持负载均衡、服务注册、服务监控和服务网关,等等。

然而,微服务也带来了一些挑战,例如服务的监控、管理、分发、扩容和发现等,尤其是当大规模部署微服务时。如果在采用微服务架构之前不解决这些常见的问题,通常会导致灾难性的后果。

终于有架构师把Spring微服务架构设计第2版文档给整理完毕了_微服务

本文旨在构建一个与技术细节无关的微服务能力模型,该模型有助于应对各种常见的微服务挑战。

本文提供了实现大型响应式微服务的实用方法和指导原则,并通过示例全面讲解如何构建微服务。本文深入介绍了Spring Boot、Spring Cloud、Docker、Mesos和Marathon,还会教授如何用Spring Boot部署自治服务,而无须使用重量级应用服务器,并介绍Spring Cloud框架的各项能力、如何使用Docker实现容器化,以及如何使用Mesos和Marathon抽象出计算资源和控制整个集群。

本文带你掌握响应式微服务设计原则,轻松构建大规模、可扩展的互联网级微服务。

因为文章内容实在是太多了,没法全部给大家展示出来,所以只能给大家展示部分内容,每个小节都有更加细化的内容

目录

终于有架构师把Spring微服务架构设计第2版文档给整理完毕了_docker_02

主要内容讲解

第1章微服务揭秘;本章将详细介绍从传统的单体架构到微服务架构的演进过程,还会介绍微服务的定义、概念和特性。

本章主要内容如下。

  • 微服务的演进。
  • 微服务架构的定义及相关示例。
  • 微服务架构的概念和特性。

终于有架构师把Spring微服务架构设计第2版文档给整理完毕了_docker_03

第2章相关架构风格和用例;本章会分析其他架构风格,并探究微服务和其他热词之间的相似性和关联性。这些热词包括面向服务架构(SOA)、十二要素应用、无服务器计算、Lambda架构、DevOps、云计算、容器和响应式微服务。十二要素应用定义了面向云计算应用开发的一系列软件工程原则。本章还会分析微服务的典型用例,并介绍用于快速开发微服务架构的一些流行框架。

本章主要内容如下。

  • 微服务架构与SOA和十二要素应用的关系。
  • 微服务架构与无服务器计算和Lambda架构风格(通常用于大数据、认知计算和物联网环境中)之间的关联。
  • 微服务的支撑性架构元素,例如云计算、容器和DevOps。
  • 响应式微服务。
  • 微服务架构的典型用例。
  • 一些流行的微服务框架。

终于有架构师把Spring微服务架构设计第2版文档给整理完毕了_docker_04

第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开发生产就绪的微服务。

终于有架构师把Spring微服务架构设计第2版文档给整理完毕了_java_05

第4章应用微服务概念;本章会研究在实际项目中实现微服务的一些技术挑战,并提供一些准则来指导关键的设计决策,确保成功开发微服务应用,还会介绍一些解决方案和设计模式来消除针对微服务的一系列常见顾虑。

本章主要内容如下。

  • 不同设计决策之间的权衡取舍。
  • 开发微服务时应当考虑的设计模式。
  • 设计一流的可扩展微服务的通用指南。

终于有架构师把Spring微服务架构设计第2版文档给整理完毕了_docker_06

第5章微服务能力模型;本章主要内容如下。

  • 微服务生态系统的能力模型。
  • 每种能力的简介及其在微服务生态系统中的重要性。
  • 支撑这些能力的可选工具和技术。
  • 微服务成熟度模型。

终于有架构师把Spring微服务架构设计第2版文档给整理完毕了_微服务_07

第6章微服务演进案例研究;本章会引入一个虚构的廉价航空公司BrownField Airline(BF),探究如何将其从一个单体式客运销售和服务(PSS)应用向下一代微服务架构演进。本章会深入研究PSS应用,并在遵循上一章介绍的设计原则和实践方法的基础上,解释该应用从一个单体系统向一个基于微服务的架构迁移的挑战、方法和演进步骤。

该案例研究旨在还原真实场景,从而明确相关架构概念。

本章主要内容如下。

  • 以BrownField航空公司的PSS应用为例,研究从单体系统迁移到基于微服务系统的真实案例。
  • 单体应用迁移到微服务的各种途径和迁移策略。
  • 用Spring框架的组件设计一个全新的现代微服务系统来替代PSS应用。
  • 使用Spring框架和Spring Boot实现微服务。

终于有架构师把Spring微服务架构设计第2版文档给整理完毕了_微服务_08

第7章用Spring Cloud组件扩展微服务;本章会详细介绍Spring Cloud项目中的各种组件,比如Eureka、Zuul、Ribbon和Spring Config,并将这些组件放置在第4章介绍的微服务能力模型的相应位置。本章会演示如何使用Spring Cloud组件对前一章开发的BrownField航空公司的PSS微服务系统进行扩展。

本章主要内容如下。

  • 用Spring Cloud Config服务器将配置信息外部化。
  • 用Eureka服务器实现服务的注册和发现。
  • 讲解Zuul作为服务代理和网关的重要性。
  • 实现微服务的自动注册和自动发现。
  • 用Spring Cloud消息机制实现异步响应式微服务编排。

终于有架构师把Spring微服务架构设计第2版文档给整理完毕了_spring cloud_09

第8章微服务的日志管理和监控;本章会探讨日志管理和监控在微服务部署中的必要性和重要性,还会进一步研究用一系列候选架构和技术来解决日志和监控问题时面临的各种挑战及解决办法。

本章主要内容如下。

  • 日志管理的不同方案、工具和技术。
  • 使用Spring Cloud Sleuth追踪微服务。
  • 端到端监控微服务的不同工具。
  • 使用Spring Cloud Hystrix和Turbine进行链路监控。
  • 使用数据湖进行业务数据分析。

终于有架构师把Spring微服务架构设计第2版文档给整理完毕了_java_10

第9章用Docker容器化微服务;本章介绍虚拟机镜像和微服务容器化部署的概念和两者之间的关联,然后介绍如何为BrownField航空公司PSS微服务系统构建Docker镜像,这些微服务都是用Spring Boot和Spring Cloud开发的,最后介绍如何在类生产环境中管理、维护和部署Docker镜像。

本章主要内容如下。

  • 容器化的概念及其和微服务上下文的关系。
  • 将微服务构建并部署为Docker镜像和容器。
  • 以AWS为例展示基于云的Docker部署。

终于有架构师把Spring微服务架构设计第2版文档给整理完毕了_spring_11

第10章用Mesos和Marathon扩展容器化的微服务;本章会介绍基本的扩容方法和在部署大规模微服务时使用Mesos和Marathon作为基础设施编排层对于云环境中优化资源利用的必要性,还会详细介绍在云环境中安装Mesos和Marathon的方法,最后会演示如何在Mesos和Marathon环境中管理Docker化的微服务。

本章主要内容如下。

  • 对容器化的Spring Boot微服务进行扩容的可选方案。
  • 基础设施抽象层和容器编排软件的必要性。
  • 从微服务的上下文中理解Mesos和Marathon。
  • 用Mesos和Marathon管理BrownField航空公司Docker化的PSS微服务。

终于有架构师把Spring微服务架构设计第2版文档给整理完毕了_spring_12

第11章微服务开发生命周期;类似于软件开发生命周期,若想成功实现微服务架构,需要理解微服务开发生命周期。

本章以BrownField航空公司的PSS微服务为例,着重介绍微服务的开发流程和实践。此外,本章会阐述组建开发团队的最佳实践、开发方法论、自动化测试、微服务持续交付,这些都和DevOps实践相一致,最后会阐明微服务分布式治理方法中参考架构的重要性。

本章主要内容如下。

  • 研究微服务开发中的一些实践要点。
  • 互联网级微服务在自动化开发、测试和部署方面的最佳实践。

终于有架构师把Spring微服务架构设计第2版文档给整理完毕了_spring_13

读者对象

本文适合想了解如何使用Spring框架、Spring Boot和Spring Cloud设计强大的互联网级微服务,以及如何用Docker、Mesos和Marathon来管理这些微服务的架构师。微服务能力模型有助于架构师运用各种工具和技术来设计微服务解决方案。

本文适合正在考虑开发云就绪的互联网级应用来满足当今业务需求的Spring开发人员。文中通过研究一系列真实用例和实操性的代码实例,揭示了微服务的实质及其在当今世界中的重要性。

本文将指导开发人员构建简单的RESTful服务,并将其有条不紊地改造成真正的企业级微服务生态系统。

希望大家能够把文中的技术知识牢牢记在自己的脑海之中,并且能够动手来实践,读与写相互配合,不断地提升自己,让自己的技术变得更有深度和广度,也希望本文能够得到大家的喜欢!