Spring Cloud是开发分布式系统的“全家桶”,它实现了很多分布式应用中的“套路”。目前Spring Cloud 正被越来越多的企业用于生产。本书知识体系非常全面,涵盖了微服务、Spring Cloud、分布式事务、缓存、存储等话题,让读者能够快速上手构建自己的分布式系统,值得一读。
本书行文流畅,由浅入深。不仅介绍了分布式开发的市场布局,更是对Spring Cloud进行了一次全方位的实践与对话。本书结合作者多年的开发和项目管理经验,为读者徐徐展开了一幅优雅的技术画卷。
本书从技术原理、工程实践、进阶提升3个维度详解Spring Cloud微服务的架构与开发
指导零基础读者快速入门并掌握工程实践能力,最终进阶为Spring Cloud微服务技术达人
全书共分为四篇:准备篇,基础篇,实战篇,高级篇。
第1章Spring Cloud 与微服务概述
微服务架构是一种架构风格,而Spring Cloud是实现微服务架构的一系列框架的有序集合。本章将带你进入神秘的微服务世界,去探索微服务存在的价值及意义,并为阅读后面的章节打下扎实的理论基础。
第2章实战前的准备工作
工欲善其事,必先利其器。在开始学习之前,最重要的事情就是准备开发环境了,各位读者需要准备JDK1.8、Maven3.3.3、 Spring Tools 4 for Eclipse。为了保证读者在实践的时候所用及所见跟本书介绍的一样,建议大家的环境跟本书所用的一致。
第3章Eureka注册中心
注册中心在微服务架构中是必不可少的一部分,主要用来实现服务治理功能,本章我们将学习如何用Netflix 提供的Eureka作为注册中心,来实现服务治理的功能
第4章客户端负载均衡Ribbon
目前主流的负载方案分为两种: -种是集中式负载均衡,在消费者和服务提供方中间使用独立的代理方式进行负载,有硬件的(比如F5),也有软件的(比如Nginx)。另一种则是客户端自己做负载均衡,根据自己的请求情况做负载,Ribbon 就属于客户端自己做负载。
第5章声明式 REST客户端Feign
第6章Hystrix服务容错处理
在微服务架构中存在多个可直接调用的服务,这些服务若在调用时出现故障会导致连锁效应,也就是可能会让整个系统变得不可用,这种情况我们称之为服务雪削效应。我们可以通过Hystrix解决服务雪崩效应。下面我们一起来学习如何用Hystrix实现服务容错处理。
第7章API 网关
API网关是对外服务的一个入口,其隐藏了内部架构的实现,是微服务架构中必不可少的一个组件。API网关可以为我们管理大量的API接口,还可以对接客户、适配协议、进行安全认证、转发路由、限制流量、监控日志、防止爬虫、进行灰度发布等
第8章API 网关之Spring Cloud Gateway
Spring Cloud Gateway是Spring官方基于Spring 5.0、Spring Boot 2.0和Project Reactor等技术开发的网关,Spring Cloud Gateway旨在为微服务架构提供一种简单有效的、 统一的API路由管理方式。Spring Cloud Gateway作为Spring Cloud生态系中的网关,其目标是替代Netlix Zuul,它不仅提供统一的路由方式, 并且基于Filter链的方式提供了网关基本的功能,例如:安全、监控/埋点和限流等。
第9章自研分 布式配置管理
微服务架构下,服务的数量少则几十,多则几百甚至上千。每次修改一个配置都需要跟进修改多个项目,然后再重启这些项目。配置的集中管理在这种情况下显得格外重要。分布式配置管理可以将多个项目的配置进行集中化的管理,统-.修改,实时生效,避免重复的劳动,可以节约时间,降低出错的概率。
第10章分布式配置中心Apollo
Apollo (阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
第11章Sleuth 服务跟踪
在微服务架构下,服务之间的调用关系越来越复杂,通过Zuul转发到具体的业务接口,一个接口中会涉及多个微服务的交互,只要其中某个服务出现问题,整个请求都将失败。这个时候我们要想快速定位到问题所在,就需要用到链路跟踪了。每个请求都是一-条完整的调用链,通过调用链我们可以清楚地知道这个请求经过了哪些服务,在哪个服务上耗时多长时间,进而达到快速定位问题的目的。
第12章微服务之间调用的安全认证
在微服务架构下,我们的系统根据业务被拆分成了多个职责单- -的微服务。每个服务都有自己的一套API提供给别的服务调用,那么如何保证安全性呢?不是说你想调用就可以调用,一定要有认证机制,即只有我们内部服务发出的请求,才可以调用我们的接口。
第13章Spring Boot Admin
Spring Boot有一个非常好用的监控和管理的源软件,这个软件就是Spring BootAdmin。该软件能够将Actuator中的信息进行界面化的展示,也可以监控所有SpringBoot应用的健康状况,提供实时警报功能。
第14章服务的API文档管理
随着互联网技术的发展,现在的网站架构基本都由原来的后端渲染,演变成了前后端分离的形式,App就是典型的前后端分离。前端和后端的唯一联系变成了 API接口; API文档变成了前后端开发人员联系的纽带,变得越来越重要
第15章API网关扩展
Spring Cloud Zuul只是为我们提供了-一个构建网关的架子,各种高级操作还是得结合自身的业务去做扩展,本章将扩展学习网关中必不可少的一些功能。
第16章微服务之缓存
缓存也是高并发系统的三把利器之- -,这足以说明其重要性。缓存有很多种,可以缓存在客户端,也可以缓存在服务端,本章我们主要讲解服务端的缓存方式。在日常的开发中,获取一些数据可能特别费时,频繁查数据库会导致磁盘和CPU负载过高,缓解的方法就是将数据缓存在内存中,当下次有相同的请求过来时就直接返回内存中的数据。利用缓存可以提升用户体验,减轻数据库压力。
第17章微服务之存储
在微服务架构下,推荐每个服务都有自己独立的数据库、缓存、搜索等,这样做的优点是能够让服务之间的耦合度降低,同时可以让不同的服务根据不同的业务需求选择自己合适的存储方式。搜索服务可以用Elasticsearch,日志服务可以用Mongodb,业务数据可以用MySQL,缺点就是对于事务的处理比较麻烦。所以我们尽量避免分布式事务,采用合理的设计。
第18章微服务之分 布式事务解决方案
事务是一组单元化的操作,这组操作可以保证要么全部成功,要么全部失败;或者只要有一个失败的操作,就会把其他已经成功的操作回滚,以此来保证数据的完整性。分布式事务的产生就是为了能够解决分布式环境下数据的一致性问题,单--数据库可以通过ACID来保证自身的事务处理,但在分布式环境下,涉及的就是不同的服务不同的数据库,仅靠单一的事务处理已经满足不了需求。
第19章分布式任务调度
分布式任务调度和微服务架构紧密相关,普通的调度任务在微服务架构下变成了复杂的分布式任务,分布式任务需要有全局的调度功能,否则相同的任务在多节点同时执行,会导致数据错误。本章将带领大家学习--个优秀的分布式任务调度框架一Elastic-Job。
第20章分库分表解决方案
随着时间和业务的发展,数据库中的表会越来越多,表中的数据也会越来越多,带来的问题就是对于数据的操作会越来越慢。由于不是分布式部署,单台服务器的资源有限,最终数据库的数量和数据处理能力会遇到瓶颈,这时采用分库分表就能解决上述的问题
第21章最佳生产实践经验
在开发过程中会遇到这样- -种情况,那就是只需要修改一个服务,但是这个服务依赖了其他的3个服务,导致开发人员本地也要启动其他3个服务,还要启动一个Eureka注册中心。问题显而易见,在依赖过多的情况下,本地需要启动很多无须修改的服务。
这份:Spring Cloud微服务入门,实战与进阶指南共有417页,需要完整版的朋友加下方小助理VX即可免费领取到!