00:00
好,同学们,前面呢,我们通过对照接口文档以及我们的前端项目完成了整个商城后台系统的大部分功能开发,那么至此呢,我们分布式基础片的开发我们就结束了,我们对它呢做一个简单的总结,首先在分布式基础篇里边,我们带大家一起学习和关注了这么四个部分相关的内容,首先第一部分来再来回顾一下分布式里边的基础概念,什么是微服务,那在我们的整个项目里边就体现的淋漓尽致了。首先微服务最大的特点就是服务的独立自致,那我们为每一个不同功能的项目呢,都创建了他自己的服务,而且在实际开发中,这些项目可以分配给不同的开发人员,我们进行并行开发,这样也提升了我们整个项目的开发速度,但是呢,有了微服务他们独立自制以后,又牵扯到了一些其他问题,比如什么是注册中心,那其实对于我们这个微服务来说。
01:01
我们将项目拆分成不同的服务,那如果服务之间不进行互相调用,彼此都跟自己没啥关系,那我们可以不需要这个注册中心,可是我们在开发过程中,我们也发现了,后来我们商品系统呢,可能要调用会员的一些服务,包括呢,有可能要调用库存的一些服务,那这些东西呢,我们就要需要一个注册中心来实时的感知每一个服务都在哪个位置,这样别的服务想要调用它了,只需要从注册中心获取到他的地址列表,然后呢,给对方来发送请求就行了。这是我们的注册中心,接下来呢,我们还有一个叫配置中心,其实对于配置中心来说,无论是微服务还是我们以前的单体应用,我们都推荐需要有一个配置中心,我们想要做到的好处就是服务一上线以后,我们不是。需要修改我们本地的源代码的这些配置,然后把它重新打包再发布,而是在线上我们直接通过一个可视化的配置中心界面,我们将配置信息进行修改,改完了以后呢,我们服务直接自动更新用到最新的配置,所以我们这个配置中心啊也是非常重要的。还有我们的远程调用,在服务开发期间,我们发现我们需要远程调用的场景,那我们这个远程调用呢,我们实际上是来用份来做的远程调用,而远程调用在spring cloud里边,说白了就是使用份给对方服务来发送一个请求而已。那么发送请求啊,其实在我们以前做的也非常多,AJ发送请求也好,我们点超链接跳转到一个位置也好,其实这都是发请求要数据,而我们微服务开发期间,我们想要用别的服务的数据,我们就可以用份来发送请求,而要使用份,首先我们得导入我们份的这些依赖。第二个我们。
02:55
得开启我们远程调用功能,就是aable分clients,那么要开启远程调用功能,那么这些服务呢,就得注册到我们注册中心,而想要注册到注册中心,每一个服务呢,我们都要配置我们注册中心的地址,那在这儿呢,配置了配置中心的地址,在这呢还指定了注册中心的地址,而由于我们注册中心呢,我们用的都是nacos,以及配置中心我们用的也是阿里的nacos,所以呢,它的这个配置啊,其实都已经简化了很多,只需要指定好地址,指定好我们当前应用的名字就行了。
03:29
当然最重要的想要把应用注册上去,我们一定要开启服务的这个注册发现注解enable discover client,所以这是我们要用份进行远程调用的前提,这微服务都得注册进来,那份想要调用呢,那就是导入粪的依赖,开启份的远程调用功能,然后编写一个远程接口,指定我们要调用哪个服务的哪个请求就行了。我们的这些参数以及返回的数据,由于传输期间都是杰森,所以我们这一块呢,只需要写能兼容我们这个杰森类型的数据就行,这是我们微服务里边需要掌握的一些概念,包括我们的网关,网关呢后来也是非常实用的,我们所有的请求都是发给网关,由网关代理给我们其他服务,那接下来呢,我们就可以在网关处做很多的统一功能设置,比如我们在前期开发做了一个最大的功能就是统一的,我们跨域解决。
04:30
我们前端请求给我们后台发AJ的时候,由于我们服务的地址不一样,所以会引起跨域,我们可以在网关处统一配置跨域,这样我们就不用在微服务的各个位置来自己来编写跨域了,包括我们在高级部分,我们还要用到网关的其他各种更强大的功能,那么微服务里边的基本信息我们就掌握了这么多,包括我们基础开发,我们用spring boot2.0,但大家会发现并没有体会到用SW boot2.0有什么重大的变化,因为我们现在还没用到,我们除过发现可能SW boot2.0里边某一些配置稍微有些变化,比如我们在配置文件中再配一些相关的内容的时候,可能跟之前的一些配置项稍微发生了一些变化,我们至此呢,也没感觉到boot2.0为我们带来了什么,实际上spring boot2.0基于SPRING5,他做了一个最大的变化,那就是。
05:30
引入了reactor,我们叫反应式编程,Reactor给我们带来web开发里边的web flex,这个呢可以非常容易的来来创建出一个高性能高并发的web应用,而我们现在呢,还没有用到,我们在高级部分呢,就会转入web flex的开发模式,我们唯一用到了web flex编程,那就是我们在网关的时候get外在这里边我们来配置我们跨域的时候与我们的整个跨域的这个filter网关,它是属于web flex编程模式的,所以我们在这用了一下web flex,但即使在这用,我们都没有感觉到web flex编程与其他的编程有什么不同,但实际上在它的源码里边,我们会发现在这do filter的时候,它返回的是一个mono,而这些编程模式呢,我们后来也会用到,这是我们说spring boot2.0后来的高级以及它不同的部分。我们后来才。
06:30
会用到包括spring cloud,我们目前用spring cloud呢,我们发现我们也只是用了简单的几个注解,比如我们开启服务的注册发现功能,包括呢开启phone的远程调用,我们顶多呢也编写了份的几个程接口,至此我们对spring cloud的其他使用,其实我们暂时都还没有涉及,当然高级部分呢,会来告诉大家spring cloud里边还有更多的内容等待我们探索,包括我们使用马贝蒂斯plus,我们也只是用以前马贝蒂斯最原生的方式配置了简单的包扫描,然后呢,而且我们都是自动生成的这些member接口,那有一些我们自定义的方法,我们只需要在马贝斯的配置文件里边做一个简单配置就行了。
07:18
当然在基础开发里边呢,我们用大量的时间来探索了5U的组件化开发,我们前几个功能呢,比如商品的分类维护,品牌管理,包括平台属性的一些前几个基本功能,我们都亲自带大家来编写了5U的相关代码,那让大家对5U的整个开发有了一个基本的入门。后边的这些呢,我们也给了大家相关的5U代码,其实大家如果自己来编写也不是非常的难,相当于呢,带大家做了一个基本的全站开发,我们前台也自己来开发了,而且在基础开发里边呢,我们额外引入了阿里云的对象存储。我们体会了一下,调用第三方服务我们都该怎么做?后来我们要调用,即使其他的第三方服务,可能我们都需要申请开通,拿到权限,调用人家SDK提供的各种功能。
08:12
其实说白了就是对照人家的接口文档,对照人家的整个SDK文档去来开发就行了,当然在搭建环境部分呢,还是使用Linux加docker的方式,那么docker来部署my my circle以及red,当然这个red我们暂时还没有用到,只是呢。在创建Linux虚拟机的时候,给大家用了一个非常快的方式migrant。只需要一个命令。Vita in sent os7,我们就可以创建一个虚拟机,想要启动虚拟机vita up就启动了。想要连接虚拟机,直接在我们Windows的CMD窗口wgresh。这呢也是非常方便的,包括最为我们提供方便的,那就是逆向工程,人人开源为我们提供的逆向工程,其实它的这个逆向工程也是基于马威斯plus这个逆向工程来做的一个改版,但是他为我们更多的编写了controller。
09:18
以及尾U的基础组件。有了它,我们基本的c rud从ctrler层到service层到do层,乃至于在我们的VIVO页面层,我们都不用开发。所以大家要小心了,我们基础的crud程序员以后再也不需要了,我们要做的是我们高级部分的高并发功能。但在开发期间,我们的一些开发规范,比如我们后来每一个数据的提交、新增,我们都需要用到数据校验,我们为大家讲解了GSR303的使用。虽然我们只用了一个场景,嫌太麻烦,其他我们都没写,但是大家直接往上套就没问题了,包括我们全局的异常处理,我们全局的整个统一返回我们的R对象,包括我们在网关做了全局的跨域,以及大家学会正确的来使用枚举,将我们项目里边固定的一些状态我们来编写,枚举来写好,以及我们将业务状态码也都抽取成相应的枚举关系,包括我们在开发期间v to以及各种O的划分,分包与处理,我在这儿呢,也都做了一些不同的处理,我们以后啊,在开发期间,凡是收页面的请求,我们都应该去来开发这些VO,包括使用了my business plus提供的逻辑删除功能。
10:42
以及我们room back为我们提供的简单的两个东西,一个是an data为我们生成get set方法,一个是cell for街为们提供了简单的日志对象,我们只需要用log.error就可以用了。这是我们整个分布式基础片我们学习到的一些知识,大家呢也可以看着代码再来回顾一下那更多的高级开发,我们期待分布式的高级开发片,我们一起再见。
我来说两句