写点什么

手慢无!清华大牛熬夜整理 Spring 微服务架构设计第 2 版文档,限时删

作者:钟奕礼
  • 2022-11-16
    湖南
  • 本文字数:3295 字

    阅读完需:约 11 分钟

前言

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

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

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

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



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

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

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

因为文章内容实在是太多了,没法全部给大家展示出来,所以只能给大家展示部分内容,每个小节都有更加细化的内容,需要完整版的小伙伴,可以转发此文关注小编后,添加下方图中 VX 即可获取



目录



主要内容讲解

第 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 实践相一致,最后会阐明微服务分布式治理方法中参考架构的重要性。

本章主要内容如下。

  • 研究微服务开发中的一些实践要点。

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



这份【Spring 微服务架构设计(第 2 版)】文档共有 443 页,需要完整版的小伙伴,可以转发此文关注小编后,添加小助理 vx:mxy98811 即可获取


点击并拖拽以移动

​编辑

读者对象

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

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

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

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

用户头像

钟奕礼

关注

还未添加个人签名 2021-03-24 加入

还未添加个人简介

评论

发布
暂无评论
手慢无!清华大牛熬夜整理Spring微服务架构设计第2版文档,限时删_Java_钟奕礼_InfoQ写作社区