前言
目前,平台化、智能化、泛在化和易用化正在成为新一轮信息技术发展及信息化应用的全球趋势。在这 趋势中,平台化尤其具有 础性及战略性意义,而以 Spring Cloud技术为代表的微服务 是平台化的代表性技术。
为了更好地推广微服务相关技术的应用,今天小编分享的这份《SpringCloud实战演练文档》。本书用简单明了的方式阐述了微服务开发的基础知识,详细介绍了Spring Cloud在项目开发各个阶段的操作方法与技巧。本书既能够帮助入门读者了解微服务,也能够帮助运维人员加深对微服务体系的理解,尤其能够为致力于互联网技术开发和Java开发的程序员带来卓有成效的实操性帮助。
本书是Spring Cloud的入门书。首先,简要概述了微服务并分析了当前互联网架构趋势。其次,系统地介绍了Spring Boot的相关知识,从基础用法到核心组件。再次,从具体的案例出发,依次讲解了SpringCloud最常用的组件,将理论与实践相结合,使读者在学习Spring Cloud的过程中还能了解一个产品从无到有的全过程。最后,结合目前最流行的容器技术,介绍了Kubernetes如何配合Docker进行系统的分布式部署。
本书适合具有一定Java基础和Spring MVC基础的人群以及希望往架构师方向发展的开发者阅读。
书籍教程结构
本书共分四部分,从基础到实战,讲解了基于Spring Cloud的常用组件。
第一部分(基础篇):第1~4章
第二部分(实战篇):第5~10章
第三部分(高级篇):第11~13章
第1章微服务概述
我们要学习微服务架构,就要了解它,本章将带领大家初步了解微服务,为后面系统学习微服务架构奠定良好的基础。
第2章Spring Boot基础
本书以实战为导向,讲解了如何使用Spring Cloud开发微服务项目,而Spring Cloud基于SpringBoot,所以本章先来初步了解如何使用Spring Boot搭建框架。
第3章Spring Boot核心原理
通过第2章的学习,读者应该对Spring Boot有了一个大致的认识,利用Spring Boot可以极大地简化应用程序的开发,这都归功于Spring Boot的四大核心原理:起步依赖、自动配置、Actuator 和Spring Boot命令行。本章中,我们将深入探讨Spring Boot的核心原理,以便读者能更好地学习和使用Spring Boot。
第4章Spring Cloud概述
从本章开始,我们将正式踏上探索Spring Cloud秘密的旅程。学完本书后,读者将学会搭建一个完整的分布式架构,从而向架构师的目标靠近。
第二部分(实战篇)
第5章 项目准备阶段
本章中,我 将开始 个大型实战项目一一博客网站。通过“以战代练”的方式来学习如何构建Spring loud 微服务架构,让读者走出理论的丛林,在实践中玩转微服务架构。
第6章 公共模块封装
从本章开始,我们将学习框架的搭建。由于代码量巨大,本书不可能全部贴出,所以只展示一些核心代码。全部源码可以从本书配套源码中查看。
第7章 注册中心: Spring Cloud Netflix Eureka
通过前面的学习,我们可以总结出来,注册中心是整套微服务架构的核心,即系统的心脏,它能够帮助我们管理所有的微服务,精确定位到具体的服务就是通过注册中心来实现的。构建注册中心的好处也是不言而喻的,通过注册中心,我们可以实现服务的负载均衡。配置的统-管理。服务间的通信等。目前。我们可以采用多种技术实现注册中心,如Eureka. ZooKeeper. Consul 等,本书采用SpringCloud默认集成的Eureka 框架来构建注册中心。
第8章 配置中心: Spring Cloud Config
我们知道,一个微服务系统可能由成千上万的服务组成,每个服务都会有自己的配置,不同服务之间的有些配置是相同的,比如数据库。如果对于每个服务,我们都复制相同的配置,一旦该配置发生了变化,那么每个服务都需要修改,代价可想而知。Spring Cloud已经考虑到了这一点, 它为我们提供了一整套解决方案, 那就是强大的Spring CloudConfig。
第9章 服务网关: Spring Cloud Gateway
本将介绍的微服务的又一大组件一一服务网关。我们需要服务网关,还有一些很重要的因素,比如服务网关会对接口进行统一拦截并做合法性校验,一个服务可以启动多个端口,利用服务网关进行负载均衡处理等。目前市面上有很多产品可以实现服务网关这一功能, 如Nginx. Apache. Zuul 以及Spring CloudGateway等。Spring Cloud集成了Zuul 和Gateway,我们可以很方便地实现服务网关这一功能。
第10章 功能开发
通过前几章的学习,我们已经搭建好了博客网站的基本框架。本章我们将正式开始网站的功能开发。
第三部分(高级篇)
第11章 服务间通信: Spring Cloud Netflix Ribbon和Spring Cloud OpenFeign
一个大型的 系统由多个微服务模块组成,我们一-般 可以通过内部接口调用的形式(服务A提供一个接口,服务B通过HTTP请求调用服务A的接口)实现各模块之间的通信。为了简化开发,SpringCloud集成了Spring Cloud Netlix Ribbon和Spring Cloud OpenFeign,两个组件都支持通过HTTP请求不同的服务。本书将简要介绍Spring Cloud Netflix Ribbon,借此引出Sping Cloud OpenFeign,并详细介绍其用法。
第12章 服务链路追踪: Spring Cloud Sleuth
我们知道,微服务之间通过网络进行通信,但在我们提供服务的同时,不能保证网络一定是畅通的。相反地,网络是很脆弱的,网络资源也有限,因此我们有必要追踪每个网络请求,了解它们经过了哪些微服务,延迟多少,每个请求所耗费的时间等。只有这样才能更好地分析系统瓶颈,解决系统问题。在Spring Cloud中,我们可以使用Spring Cloud Sleuth组件来实现微服务追踪。
第13章 服务治理: Spring Cloud Consul和Spring Cloud ZooKeeper
在前面的章节中,读者已经接触到了Spring Cloud 默认集成的服务治理框架Spring Cloud NettlixEureka。在本章,我们将接触到新的服务治理框架,以便读者在实际应用中有多种选择。
第四部分(部署篇)
第14章系统发布上线
通过前几章的学习,我们顺利完成了应用的开发,仅仅完成框架搭建和功能开发是不够的,我们还需要将应用发布到服务器上供客户端访问。本章中,我们将开始详解应用的发布。
第15章使用Kubernetes部署分布式集群
容器技术的出现带给了我们新的思路。我们可以将服务打包成镜像,放到容器中,通过容器来运行服务,这样可以很方便地进行分布式管理,同样的服务也可以很方便地进行水平扩展。Docker是容器技术方面的佼佼者,它是一-个开源容器,而Kubernetes (以下简称K8S)是一个分布式集群方案的平台,它和Docker就是天生的一对。 通过K8S和Docker的配合,我们很容易搭建分布式集群环境。下面,我们就来看一下Docker和K8S的诱人之处。