阿里巴巴最新分享 Spring Cloud 核心笔记,全程实例讲解,通俗易懂
前言
众所周知 Spring 全家桶在 Java 世界的地位很重要,它不仅为 Java 开发者证明了基于注解开发、AOP(面向切面编程)开发以及面向接口开发能够给程序带来极大的灵活性,而且带来了依赖注人、声明式事务、统- -的异常处理、模块自动化加载、更简单的 Maven 管理、更简单的单元测试等优秀的开发实践。前段时间,好不容易从一位阿里老哥那里要来一份《Spring Cloud 核心笔记》,学了一段时间发现特别不错,就想着写篇文章来分享给大家,如果写的不好,还请多提提意见
这份《Spring Cloud 核心笔记》全流程实例讲解 Spring Cloud 核心组件应用与微服务开发,语言简练,内容通俗易懂,实用性强,结构清晰,层层剥茧式分析。实战案例可以拿来就用,帮助初学者快速上手。读者不但可以系统地学习 SpringCloud 的相关知识,而且还可以全面掌握微服务架构应用的设计、开发、部署和运维等知识。

这份笔记共 21 章,首先从微服务基础框架 Spring Boot 讲起;其次重点讲述了 Spring Cloud 中的核心组件;最后介绍了微服务涉及的相关技术。如果有需要这份《Spring Cloud 核心笔记》的朋友添加小助理 wx:bjmsb0606006 即可获取免费下载方式!
第 1 章
什么是微服务:从面向服务的架构(SOA)讲到微服务原则与优势,最后以 Spring
Cloud 与 Dubbo 对比的方式,阐明微服务 Spring Cloud 的优势。


第 2 章
微框架 Spring Boot: Spring Boot 是-一个 Spring 框架模块,它为 Spring 框架提供 RAD (快速应用程序开发)功能,它高度依赖启动器模板功能,该功能非常强大且完美无缺。Spring Boot 同样也是 Spring Cloud 的重要组成部分。


第 3 章
从服务注册与发现说起:在微服务中,消费者为了完成-一次服务请求,需要知道具体服务的详细地址( IP 和端口)。传统应用都运行在物理服务器上,服务实例的网络位置都是相对固定的。怎样从一个经常变更的配置中读取网络位置显得尤为重要。


第 4 章
服务提供者与服务消费者的关系:什么是服务提供者和服务消费者?服务提供者是指服务的被调用方,即为其他服务提供服务的服务;服务消费者是指服务的调用方,即依赖其他服务的服务。


第 5 章
模板引擎:为了使用户页面和业务数据相互分离而产生,它将从后台返回的数据生成特定格式的文档。用于网站的模板引擎就是生成 HTML 文档。


第 6 章
服务的雪崩与熔断:典型的分布式系统由许多协作在一-起的服务组成, 这些服务容易出现故障或延迟响应。如果服务失败,可能会影响性能的其他服务,并可能使应用程序的其他部分无法访问,或者在最坏情况下会导致整个应用程序崩溃。


第 7 章
分布式配置中心:随着服务业务的越来越多,配置文件更是眼花缭乱,每次不知道因为部署/安装问题浪费多少时间,更不知道因为配置问题出过多少问题。如果采用分布式的开发模式,需要的配置文件将会随着服务增加而不断增多。某一个基础服务 信息变更,都会引起一系列的更新和重启,导致运维人员苦不堪言,并且也容易出错。配置中心便是解决此类问题的灵丹妙药。


第 8 章
API 网 关:API 网关是微服务架构中很重要的-一个部分,是发起每个请求的人口,也可以在网关上做协议转换、权限控制、请求统计和限流等其他工作。


第 9 章
Cloud Foundry: Cloud Foundry 是一个 开源平台即服务(PaaS),提供云、开发人员框架和应用程序服务的选择。它是开源的,由 Cloud Foundry Foundation 管理。最初的 Cloud Foundry 由 VMware 开发,目前由 GE、EMC 和 VMware 的合资公司 Pivotal 管理。


第 10 章
消息驱动: Spring Cloud Stream 是- -个用来为微服务应用构建消息驱动能力的架构,为一些供应商的消息中间件产品提供个性化的自动化配置实现,并且引人了发布一-订阅、消费组以及分区三个核心概念。


第 11 章
单点登录:单点登录(Single Sign On, SS0)就 是把多个系统的登录验证整合在一起,这样,无论用户登录任何-一个应用,都可以直接以登录过的身份访问其他应用,不必每次都访问其他系统再登录。


第 12 章
Activity 工作流: Activity 实现了工作流程的自动化,提高了企业运营的效率、改善了企业资源的利用、提高了企业运作的灵活性和适应性、提高了量化考核业务处理的效率、减少了浪费。流程图就像流水线-样,张三请完假,相应地李四就会收到张三的任务审批申请,若通过,则流程结束;若不通过,就会通知张三,张三可以再次发起申请。


第 13 章
ElasticSearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful Web 接口。ElasticSearch 是 用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。其设计用于云计算中,能够实现实时搜索,不仅稳定、可靠、快速,而且安装使用方便。


第 14 章
ELK Stack:通过使用微服务,我们已经能够解决许多遗留问题,并且它允许创建稳定的分布式应用程序,并对代码、团队规模、维护、发布周期、云计算等进行所需的控制。但它也引入了一些挑战,如分布式日志管理、查看在许多服务中分布的完整事务的日志与一般的分布式调试的能力。ElasticSearch、 Logstash 和 Kibana- -起称为 ELK Stack,它们用于实时搜索、分析和可视化日志数据。


第 15 章
多线程:多线程是指从软件或者硬件上实现多线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同- -时间执行多于-一个线程,进而提升整体处理性能。线程可以获得更大的吞吐量,但是开销很大,如线程栈空间的大小开销、切换线程需要的时间开销,所以通过线程池进行重复利用,当线程使用完毕之后,就放回线程池,避免创建与销毁的开销。


第 16 章
Redis 缓存技术: Redis 基于内存,也可以基于磁盘持久化 NoSQL 数据库,使用 C 语言开发。Redis 开创了一种新的数据存储思路,使用 Redis, 不用在面对功能单调的数据库时把精力放在处理如何将大象放进冰箱这样的问题上,而是利用 Redis 灵活多变的数据结构和数据操作为不同的大象构建不同的冰箱。


第 17 章
微服务监控:由于在微服务体系下,各种服务众多,仅靠人力维护服务不现实,成本极高,因此微服务监控很有必要。


第 18 章
API 文档:随着微服务架构的日益普及,服务与服务直接对接也变得日益密切起来,REST 风格变得大势所趋。Swagger 是为了描述一套标准的而且是和语言无关的 REST API 的规范。对于外部调用者来说,只通过 Swagger 文档即可清楚 Server 端提供的服务,而不需要阅读源码或接口文档说明。官网上有关于 Swagger 的丰富的资源,包括 Swagger Editor、Swagger UI 以及 Swagger 为各种开发语言提供的 SDK。这些资源为 RESTAPI 的提供者以及调用者提供了极大的便利。


第 19 章
持续集成:介绍微服务为什么会谈到自动化部署?“互联网+” 的需要。在信息越来越繁杂的互联网时代,公司运行的项目越来越多,项目相关服务繁多,服务之间存在复杂的依赖关系,运维与管理任务越来越繁重,手工交付需要花费很多的人力与时间,且安全性和时效性均无法保证。随着企业对版本上线质量和速度的要求越来越高,敏捷开发、Devops 的接受度越来越高。传统的交付方式因为项目之间缺少依赖、环境不- -致、版本不- -致、人为操作失误等情况,使得项目交付过程中问题不断,而互联网企业发展节奏快、版本发布频率高,上线出 故障影响面广、影响度高,因而企业对敏捷开发、持续集成、自动发布都有强烈的需求。


第 20 章
金丝雀部署:每次部署到生产环境时,我们都会担心更改将会影响用户体验。无论使用什么技术或策略进行部署,可能出错的事情都会出错,这是墨菲定律。


第 21 章
Spring Cloud 实战:项目选用 Spring Cloud 微服务解决方案,框架的搭建基于 SpringBoot,使用到的技术有 Feign、Hystrix、 Ribbon、 Eureka、 Cloud-Config、 0Auth2.0、 ES。


由于内容实在是太多,关于阿里老哥分享的《Spring Cloud 核心笔记》就分享到这,但本片文章中的内容我已整理成 PDF,有需要的朋友动动小手添加小助理 wx:bjmsb0606006 即可获取免费下载方式!
评论