没有 7 年经验你真学不会这份 SpringCloud 实战演练文档
前言
Spring Boot 的优势是不言而喻的,它简化了 Spring MVC 架构,将其核心代码封装起来,井且基于注解,摒弃了烦琐的 XML ,大大增强了代码的可读性及可维护性,提升了开发效率。 此外 SpringBoot 集成了 Tomcat ,使项目部署变得容易,不需要单独部署 Tomcat ,使用 Java 命令即可完成项目的发布。
然而 Spring Boot 不是分布式架构,随着我公司项目的用户量不断增加,并发数不断增大,基于 Spring Boot 的系统架构遇到了瓶颈。无巧不成书,这时微服务思想逐渐流行起来,无论是技术论坛还是程序员间的谈话,都在讨论微服务。国内著名的互联网企业阿里巴巴早在 2012 年就推出了 Dubbo 框架,但由于种种原因, Dubbo 停止了维护,直到 2017 年, Dubbo 官方才重新开始维护。就在这时,Spring Cloud 横空出世,它基于 Spring Boot ,同时集成了市面上比较成熟的微服务组件,形成了一套完整的微服务解决方案。
Spring Cloud 的出现为广大开发者带来了福音。大家会发现, Spring Cloud 的好处虽然多,但国内的系统教程可谓凤毛麟角,实战类课程更是难求,本文就是在这种大环境下编写的。作者认为,实战即学习,只讲理论,不重实战,是不可取的。
本文就从理论到实践,为大家的开发工作提供便利,希望本文能够帮助到大家的学习!!
目录
主要内容
本文共分四部分,从基础到实战,讲解了基于 Spring loud 的常用组件。
第一部分(基础篇):第 1~4 章。这部分主要讲解了 Spring Boot 的基本用法及 Spring Cloud 的 HelloWorld 示例,带领读者先目睹 Spring Cloud 的风采,为后续学习打好基础。
第 1 章微服务概述;本章中,我们首先比较了单体架构和微服务架构的优劣,并分析了如何选择适合自己项目的架构方案。其次,我们大致了解了微服务的基本概念,也了解到当今微服务的发展趋势和现状,进而对比了当前最流行的微服务框架。最后,结合一张简单的微服务架构图,让读者对微服务架构有了清晰的认识,为后续搭建一套完整的微服务框架打下基础。
第 2 章 Spring Boot 基础;通过本章的学习,我们了解了 Spring Boot 的基本用法并感受到了 YAML 的优雅。本章涵盖了一些实际项目中可能会用到的知识点,如常用注解、Spring Boot 默认引擎的集成、JSON 转换器的更改以及编译部署应用等。最后还介绍了目前较为流行的 WebFlux 框架。在后面的内容中,我们将进一步学习 Spring Boot 的其他特性。
第 3 章 Spring Boot 核心原理;Spring Boot 最核心的部分不外乎起步依赖机制、自动配置管理、Actuator 监控管理和 Spring BootCLI 命令行工具,本章对它们分别进行了剖析。通过对四大核心的研究,读者应该对 Spring Boot 有了更深的了解,并为后面学习 Spring Cloud 打下坚实的基础。
第 4 章 Spring Cloud 概述;本章中,我们正式进入 Spring Cloud 的学习。任何一门技术入门书,都是从 Hello World 开始的,本书也不例外。本章先介绍了 Spring Cloud 的基本概念、Spring Cloud 的优缺点及发展现状,随后以一个最简单的 Spring Cloud 示例演示了其部分核心思想,即服务的注册与发现、服务网关,使读者对 Spring Cloud 有了初步的了解,为后面的项目开发奠定基础。
第二部分(实战篇):第 5~10 章。本文的编写初衷是以实战为导向,因此这一部分占比最重,其中全方位讲解了实战项目的开发流程。
第 5 章项目准备阶段;通过本章的学习,我们了解到一个项目从需求分析、产品设计到最后的架构设计的整套流程。在实际的项目中,无论流程如何改变,这些基本思路是不变的。
第 6 章公共模块封装;本章主要封装了博客网站的公共模块,即每个模块都可能用到的方法和类库,保证代码的复用性。读者也可以根据自己的理解和具体的项目要求去封装一些方法,提供给各个模块调用。
第 7 章注册中心:Spring Cloud Netflix Eureka;本章介绍了 Spring Cloud 的核心架构:服务的注册与发现。每个服务都应注册到注册中心,服务间的通信和配置的拉取都是通过注册中心进行的。通过注册中心的分布式管理,我们可以很容易搭建出一套高可用的微服务架构。
第 8 章配置中心: Spring Cloud Config;本章主要介绍了 Spring Cloud Config 的基本用法,涵盖了 Config 的方方面面,从配置的拉取、内容的加密到安全认证,读者可以根据自身项目的实际要求来选择是否加密,是否进行安全认证。
第 9 章服务网关:Spring Cloud Gateway;本章介绍了 Spring Cloud 的另一大组件:服务网关,它是外部通信的唯一入口。在实际项目中,我们需要对接口进行安全性校验,而一套微服务架构可能存在成千上万个服务,不可能对每个服务都单独实现安全机制,而应通过服务网关统一拦截。Spring Cloud Gateway 默认实现了负载均衡,一个服务可以部署到多台服务器,通过其负载均衡机制,.可以有效地提升系统的并发处理能力。
第 10 章功能开发;本章中我们正式开始了实战项目的功能开发。通过本章的学习,我们了解了如何高效地使用 MyBatis,简化我们的持久层开发,亦了解了接口的安全性校验,达到提升系统的安全性的目的。
第三部分(高级篇):第 11~13 章。第二部分的内容已经是一套完整的微服务架构,但是在实际的生产中,尤其对于并发要求较高的系统来说是远远不够的,因此这部分集成了微服务的高级用法。
第 11 章服务间通信:Spring Cloud Netflix Ribbon 和 Spring Cloud OpenFeign;本节介绍了 Spring Cloud Netflix Ribbon 和 Spring Cloud OpenFeign,通过两者的对比,推荐读者使用 OpenFeign,此组件也是在微服务应用中运用最广泛的组件之一。通过 OpenFeign,我们可以轻松实现服务间的通信,极大地降低系统的耦合性。通过 OpenFeign 的负载均衡,提升系统间调用的稳定性和并发数,利用其集成的熔断器,使应用的稳定性进一步提升。
第 12 章服务链路追踪:Spring Cloud Sleuth;随着业务越来越复杂,一个看似简单的应用,它的后台可能有几十个甚至几百个服务在支撑。一个请求可能需要多次调用服务才能完成,当请求速度变慢或者不可用时,我们无法得知是哪个服务引起的,这时就需要快速定位服务故障点,Zipkin 很好地解决了这个问题。
通过本章的学习,读者可以了解到如何实现微服务的链路追踪,并且将追踪数据存储到硬盘中,以便离线分析数据,为快速定位服务故障点提供支持。
第 13 章服务治理:Spring Cloud Consul 和 Spring Cloud ZooKeeper;Spring Cloud 默认服务治理框架为 Netflix 的 Eureka 框架,但它不是唯一的选择,Spring Cloud 还集成了 Consul 和 ZooKeeper 供读者选择。
本章分别介绍了 Spring Cloud Consul 和 Spring Cloud ZooKeeper 的安装部署和集成,从多元化思想出发,使读者在实际开发中有了更多的选择。本章简要介绍了两个服务治理框架的注册与发现、健康检查等。和 Eureka 一样,它们也有许多特性,由于篇幅原因,没有一一介绍,其原理和 Eureka 一致,在深入了解后,读者完全可以在此基础上进一步优化架构。
第四部分(部署篇):第 14~15 章。系统最终会发布到网络上,传统的系统发布由人工上传并启动应用,而这在微服务架构中是不可取的,因为一套微服务架构可能由很多服务构成,人工启动应用的工作量会非常巨大,所以有必要让读者了解分布式系统的部署细节。
第 14 章系统发布上线;本章进入了系统发布阶段,先介绍了 Linux 操作系统的安装与操作,然后介绍了项目的编译与打包,最后讲解了如何通过 Jenkins 自动发布系统。通过本章的学习,读者可以独立完成系统的构建和发布工作。
第 15 章使用 Kubernetes 部署分布式集群;通过本章的学习,读者可以了解到 Docker+K8S 搭建集群环境的全过程,亦可独立完成集群环境的搭建,并能利用 K8S 部署微服务应用。
这份【springcloud 实战演练】共有 279 页,需要完整版的小伙伴,可以转发此文关注小编,**点击这里,获得文档领取方式**
评论