2020 年的时候,工作也三年多了,一直处于温水煮青蛙的状态,一直想着学一些东西,但是好像没有什么长性,后来一次偶然的机会,开始学习 SpringCloud + SpringCloud Alibaba,在这期间整理了三十多篇的笔记和几十个实例项目的代码。</br>
通过这次的学习,真的是让我受益匪浅,从以前只知道 CRUD ,到现在能够对微服务有比较深刻的认识(当然,不光要学这些东西,还有其它很多),只要你肯定努力,肯定能够用一个月的时间,从完全不了解微服务到对微服务有一个全面的了解。
学习笔记
下面是我在学习的过程中整理的笔记,我会在接下来的一段时间,整理这些笔记,以文章的形式发送出来。
项目源代码
另外,在整个的学习过程中,每一个组件,每一个实例,我都亲自动手敲了代码,前前后后加起来有 30 多个子项目,真正包含了微服务的各个基础入门知识点,下面是项目的部分截图:
在项目的 Readme 文件中注明了整个工程的技术选型和每个子工程的用处:
项目目前已经完全公开,另外文中涉及到的所有资料都可以在项目中获取,地址为:
学习脑图
在整个的学习过程中,配合上脑图的使用,能够帮助你更全面高效的学习整个课程。
学习大纲
在接下来的一段时间中,我会将笔记整理出来,以文章的形式发表,帮助你以一个月的时间,轻松入门 Spring Cloud 和 Spring Alibaba,下面我简单罗列一下每一天的学习知识点:
第一天
前言
微服务的整体架构和理论
spring boot 和 spring cloud 的选型
Spring Cloud + Spring Cloud Alibaba 第一天
第二天
cloud 组件停更说明
父工程 project 创建
父工程 pom 文件编写
第三天
父工程 pom 文件中 dependencyManagement 和 dependencies 的区别
支付模块构建8001(上)
支付模块构建(中)
支付模块构建(下)
热部署
第四天
消费者订单模块80(上)
消费者订单模块(下)
工程重构
第五天
Eureka 基础知识
Eureka Service 服务端安装(单机版)
支付微服务 8001 入驻 Eureka service
订单微服务 80 入驻 Eureka service
第六天
Eureka 集群原理说明
Eureka 集群环境构建
订单8001,支付80两服务入驻 Eureka service 集群
第七天
支付模块的 provider 进行微服务集群的配置
actuator 微服务信息完善
第八天
服务发现Discovery
Eureka自我保护的理论知识
如何禁用Eureka的自我保护机制
Eureka的停更说明
第九天
支付服务provider注册进zookeeper
临时节点还是持久节点?
订单服务consumer注册进zookeeper
第十天
Consul简介
安装并运行Consul
服务提供者注册进Consul
服务消费者注册进Consul
三个注册中心的异同点
第十一天
Ribbon入门介绍
Ribbon的负载均衡和Rest调用
Ribbon默认自带的负载均衡规则
Ribbon负载规则替换
第十二天
Ribbon默认负载轮询算法原理
RoundRobinRule源码分析
Ribbon之手写轮询算法
第十三天
OpenFeign是什么
OpenFeign服务调用
OpenFeign超时控制
OpenFeign服务增强
第十四天
Hystrix是什么
Hystrix停更进维
Hystrix的服务降级熔断限流概念初讲
Hystrix支付微服务架构
JMeter高并发压测后卡顿
第十五天
订单微服务调用支付出现卡顿
降级容错解决的维度要求
Hystrix之服务降级支付端fallback
Hystrix之服务降级消费端fallback
第十六天
Hystrix之全局服务降级DefaultProperties
Hystrix之通配服务降级FeignFallback
Hystrix之服务熔断理论
Hystrix之服务熔断案例(上)
Hystrix之服务熔断案例(下)
Hystrix之服务熔断总结
第十七天
Hystrix工作流程最后总结
Hystrix图形化Dashboard搭建
Hystrix图形化Dashboard监控实战
第十八天
getway和zuul的课程说明
getway是什么
getway非阻塞异步模型
getway工作流程
getway9527搭建
getway配置路由的两种方式
第十九天
getway配置动态路由
getway常用的Predicate
第二十天
GateWay的Filter
Config分布式配置中心介绍
第二十一天
Config配置总控中心搭建
Config客户端配置与测试
Config动态刷新之手动版
第二十二天
Bus消息总线是什么
Bus之RabbitMQ环境
Bus动态刷新全局广播的设计思想
Bus动态刷新全局广播配置实现
Bus动态刷新定点通知
第二十三天
Stream为什么被引入
Stream是什么以及Binder介绍
Stream的设计思想
Stream编码常用注解
Stream消息驱动之生产者
第二十四天
Stream消息驱动之消费者
Stream之消息重复消费
Stream之Group解决消息重复消费
Stream之消息持久化
第二十五天
Sleuth是什么
Sleuth之zipkin搭建安装
Sleuth链路监控展示
Cloud Alibaba简介
第二十六天
Nacos简介和下载
Nacos安装
Nacos之服务提供者注册
Nacos之服务消费者注册和负载
Nacos服务注册中心对比提升
Nacos之服务配置中心
Nacos之命名空间分组和dataId之间的关系
Nacos之DataId配置
Nacos之Group分组方案
Nacos之Namespace方案
第二十七天
Nacos集群--架构说明
Nacos持久化切换配置
Nacos之Linux版安装
Nacos集群配置(上)
Nacos集群配置(下)
第二十八天
sentinel是什么
sentinel下载安装运行
sentinel初始化监控
第二十九天
Sentinel流控规则简介
Sentinel流控-QPS直接失败
Sentinel流控-线程数直接失败
Sentinel流控-关联
第三十天
Sentinel流控-预热
Sentinel流控-排队等待
第三十一天
Sentinel降级简介
Sentinel降级-RT
Sentinel降级-异常比例
Sentinel降级-异常数
Sentinel热点key(上)
Sentinel热点key(下)
第三十二天
Sentinel系统规则
SentinelResource配置(上)
SentinelResource配置(中)
SentinelResource配置(下)
Sentinel服务熔断Ribbon环境预说
Sentinel服务熔断无配置
Sentinel服务熔断只配置fallback
Sentinel服务熔断只配置blockHandler
Sentinel服务熔断fallback和blockHandler都配置
Sentinel服务熔断exceptionnsToIgnore
Sentinel服务熔断OpenFeign
Sentinel持久化规则
第三十三天
分布式事务问题由来
Seata术语
Seata-Server安装
Seata业务数据库准备
第三十四天
Seata之Order-Module配置搭建
Seata之Order-Module撸码(上)
Seata之Order-Module撸码(下)
第三十五天
Seata之Storage-Module说明
Seata之Account-Module说明
第三十六天
Seata之@GlobalTransactional验证
Seata之原理简介
写在最后
如今 springcloud 微服务的重要性已经是不言而喻了,几乎每一个招聘要求上都要求会微服务的技术栈,所以不要再犹豫了,花一个月的时间,给自己一个机会,对微服务有一个全面的认识和了解,当你学完这些课程的时候,你会发现,你需要走的路还远,这不是结束,而只是一个开始!加油,陌生人,希望你收藏起来,用一个月的时间给自己一个改变。
文中的脑图,示例源代码等我已经全都整理好进行开源了。