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页,需要完整版的小伙伴,可以转发此文关注小编,扫码来获取!!