正文
Spring Cloud是目前市面上最火爆的Java微服务技术栈,因其功能丰富涉及微服务管理全面,并且在高可靠、高可阔以及在应对复杂业务和承受并发的能力上发挥出色,使其受到众多互联网公司的青睐。
很多公司逐步转型到微服务架构风格,所以springcloud是成为进阶Java开发高级工程师的必备技术栈。
本套课程将带你深入学习SpringCloud相关技术,学成之后可以去手动去搭建一个项目,相当可以主导一个项目开发,让你在技术上有一个质的提升。
课程特色
1、入门简单但课程深入
本套课程入门比较简单,陈老师在课程当中通过举一些生活中的案例去讲解它。同时入门之后课程中会有一些深入理解,比如说对它进行一些源码分析,对一些框架进行手写或改造。整个课程主要是让学生去深入理解它,并不是仅限于使用阶段。
市面上有些课程它的入门起来比较难,会举很多复杂的案例,对新手来讲是不太友好,而我们这个课程它是一个循序渐进的过程,会从一些架构的发展的角度去讲,并不是说上来直接去写这个代码,上面有一个总体大局观,从大局开始往里面去深入学习,慢慢去理解。
2、手写核心组件
很多市面课程并没有去手写,或者说想去分析这个项目里面的源码,而我们这个课程基本上每个组件的源码都会进行分析,进行一些深度学习。
本套课程会手写SpringCloud的一些核心的组件。第一个是注册中心,第二个就是远程调用,第三个是熔断器,后面还有网关等等内容。
这里面我们手写了远程调用和熔断器的两个框架。手写框架这部分很重要,因为这能帮助我们去了解它的原理,如果我们对它的原理不理解的话,是不好去把它实现的。
很多同学在学习这个框架的时候,只是会使用,而且出了问题,并不知道从哪一个角度去排查问题。而我们去手写的话,第一可以对这个框架有更深刻的印象,我们肯定是学习了他的一个思想,才能进行改造或者手写。比如说你只会用的话,那是工作里面如果出了问题,不知道怎么去调试,我们写完之后可能对它的印象会非常深刻。
课程重点
本套课程全部都是重点,我们主要挑的是市面上常用的一些组件来讲,因为SpringCloud的组件比较庞大,随便展开来讲都有至少30个以上,所以我们会选择其中几个进行讲解。
1、注册中心
这个是必须要先学的一个东西,是整个SpringCloud的基石。它是整个SpringCloud的一个入门,必须放在第一章来学习,如果不先学它,后面基本上就没办法学了,它是一个相当于是个开头的篇章。
这一部分内容会从Eureka简介、以及它和其他注册中心的对比、它的快速入门集群搭建和源码分析等方面去讲解。这个SpringCloud Eureka其他组件也是一样的学习方式,我们会从基本入门开始再到深入理解,以及手动去实现部分组件的一些功能,让大家在以后的技术开发中找到相同的概念。经过学习,大家在以后的工作中也可以有章可循,轻松的去应对大型的微服务项目。
2、Spring Cloud Ribbon
是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现,通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模板请求自动转行成客户端负载均衡的服务调用。
3、Feign远程调用
Feign是一个声明式的http客户端,其作用就是帮助我们优雅的实现http请求的发送,解决上面提到的问题。是服务和服务之间通讯的一个重点。
4、断路器的hystrix
熔断器,也叫断路器。(正常情况下,断路器是关的,只有出现了问题才会打开)用来保护微服务不雪崩的方法,思想上和课程内容中之前画的拦截器是一样的。
5、网关(从P43开始讲解)
网关是微服务最边缘的服务,直接暴露给用户,用来做用户和微服务的桥梁。
6、SpringAlibaba
SpringCloud是一个很大的社区,目前来说有几个公司在一起支持他,相当于SpringCloud它只是一个宏观的定义,那么像spring官方它提供了一些组件,相当于它自己搞了一套组件去开发,SpringAlibaba相当于是国产的一些组件去支持它,现在越来越多的公司趋向于国产化,我们要用自己中国人的技术,在这套视频里面,SpringAlibaba我们做了一个入门。
SpringAlibaba这个组件国内的公司用的逐渐变多,也是会逐步取代像原始的SpringCloud的一些组件。
7、nacos注册中心
是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
视频里面有实战的项目吗?
在本套课程里,我们有做一些简单的案例,在之后的整个教学过程中,学完之后后面会做一个比较大型的项目。
项目怎么划分
服务划分可从两个方面来讨论,这个东西没有明确的定义,我们可以按照功能来划分,也可以按照业务来划分,这是两个不同的点,这个需要去具体分析不能给出明确的定义。
我们可以根据具体的业务场景来讨论,到底是按照功能划分还是按照业务划分。
比如说一个要操作数据库的功能,要去操作一个es(elasticsearch,简称es)数据库,按照功能来整合到一起。还是说我们按照业务,比如说这个模块这个服务就是做用户相关的业务,那个模块就是做商品相关业务,这个东西没有明确的定义,可以按照业务和功能两个方面来讨论和划分,每个公司它的一个划分也是不太一样的,大部分通过这两种方式,业务和功能。
课程学习基础
这个课程主要是针对要有一定的一个架构基础,特别是有一定框架基础的,比如说一定要会SSM或者是SpringBoot框架才有能力去学习SpringCloud 框架,这个框架是Java中一个比较高级的框架。
大概学习周期:如果是纯自学的话,大概是会在10天到半个月左右的时间,差不多可以去入门。
课程改进
这个课程主要是入门就比较简单,会举一些生活中的案例去讲解它。同时入门之后课程中会有一些深入理解,比如说对它进行一些源码分析,对一些框架进行手写或改造。整个课程主要是让学生去深入理解它,并不是仅限于使用阶段。
课程目的
对于一些已经工作的人来说,他们在哪些技术上会有提升,提升完之后会有一个怎样的效果?
我们之前如果工作的话,它是仅限于公司项目的使用阶段,那么我们把这个课程学完之后,就可以去手动去搭建一个项目,相当可以主导一个项目开发,能有一个质的提升,并不是说你只会去用,我们只会去怎么启动怎么使用,而是学完之后,可以把我们整个的SpringCloud从0开始搭建一个,你可以自己当一个项目组长可以主导我们开发地位。
相当于你可以去让这些组件之间怎么产生联系,怎么去进行一些搭配,你可以去把他们给利用起来。
学习前提
首先你要有一定基础才能学习这个课程,这套课程属于偏中等偏上的一个难度,对于新手和老手来讲,它都是有一定启发的。
很多市面上的视频,它的讲解的内容比较偏向简单,它的源码什么的都没有看,它只是教了使用级别,但是如果出了问题,包括怎么去改造,怎么去进行一个整合,怎么去优化,都是没有讲到的。在我们课程中,老师则都会讲到。当然,关于springcloud的课程介绍,远不止文章里提到的