00:01
好,接下来呢,我们就来看,我们要想实现一个服务的调用啊,因为我们你想这个事儿是这样的。我们会做一个,哎,这个consumer对provider的调用,会做一个就会做十个啊,然后会做十个就会做100个,所以说呢,咱们在这儿呢,带着大家我们一起呢,来看一个就够了。我们现在呢,就是做一个用户登录啊,认证的一个服务,那就是分成提供端和消费端这两部分来实现。总的这个思路呢,是这样的。呃,我们从这开始说起啊,我们让我们的买SQ的提供端。把他的服务诶注册到我们的注册中心,然后呢,消费端他发现了这个服务就可以来远程的调用,而远程调用呢,这个暴露暴露服务的接口是在这个API里边来声明的。这个时候呢,我们接下来的操作哈,先来准备好我们的服务注册中心,哎,把它把我们这个nacos给启动起来,第二步呢,是我们的这个MYSQL的。
01:10
这个内部啊,我们先实现啊,先完成这个操作啊,它先能够去把里边的这个东西呢,给它能够提供,呃,写好就是说其实它里边呢,我们说过啊,分布式架构,它里边呢,其实是一个单体架构,这里边儿呢,就是我们传统的三层结构,哎。有这个表述层,业务逻辑层和持久化层啊,这边实现了以后,我们下一步呢,根据我们这边的实现来暴露接口,这边暴露了接口,消费端呢,就可以来调用我们这边的接口来使用我们这个服务了。那么首先呢,启动这个NAS注册中心这儿呢,是以这个呃,单一实例的方式啊,就是没有集群的方式来启动的。在我们的这个矮劲里边呢,有一个terminal哈,我们可以在这儿可以打开这个本地的命令窗口。
02:03
我们进入到D盘,我这在在software,哎,NAS,然后呢,B。然后呢,运行这个startup-m stand alone。这里边至于说nacos是什么,怎么去安装部署NAS,这个就不是我们这儿这个在maman的课程里边要讲的了啊,这个东西就需要大家你自己去学一下哈,哎,他那S自己的端口号是8848。好,它已经启动成功了,呃,然后呢,我们看这个关于这个接口呢,我们,哎也稍微正式一点,再写一个接口文档啊,其实不是我们现写啊,是我们这儿已经准备好了。就是在这儿哈。对于这个接口的描述,它的功能就是,呃,谁调用我,你把用户名密码传输给我,我呢负责来验证是否可以登录,你这个用户名密码是否正确。
03:06
呃,如果验证成功的话,我就把从数据库查询到的这个对象给你返回,如果验证失败的话,那么我们就返回错误的消息,哎,这是我们接口一个功能上面描述。从这呢,其实也体现了我们很好的封装性,你对于我们外部调用者来说,你就知道这些就够了。啊,你需要传给我什么,我我返回给你什么,至于说我怎么实现的,这个你不用管对吧?啊,这就是一种也是很好的一种封装和一种解耦。啊,请求到UR地址啊,那呃,我们在这个,呃,这个这个叫买SQL的数据提供者,这哈,我们对外呢,暴露10001这个接口啊这个端口,然后呢,访问的地址呢,设定为这个地址。请求方式呢,你get其实post应该也都可以哈,这个没有什么这个,呃,没有什么太严格的这个区分参数传账号和密码这两个。
04:03
哎,肯定是必须都得提供的字符串类型。默认制没有啊,说明的话就是它是登录的账号,他是登录的密码。这是返回值的,返回值的结果啊,啊这个这个时候他们就是我们刚才说过的result entity啊,它的结果封装成的一个。封装成的这个这个叫,呃,就是转成的杰森数据啊,你看这个result它是成功的,这个result是失败的,哎成功的时候就没有失败的消息了,返回的这个结果啊,就是我们的这个。这个就是查询到的影lo啊,它转成的一个结算数据。然后如果失败的话,会有消息,它就肯定是就没有我们的这个数据了,诶然后呢,对于参数的一个说明啊。哎,就没有其他备注了,这因为我们这个接口毕竟来说也是一个很简单的一个接口。然后呢,说我们这个肺。
05:03
我们需要呢,把这个。啊,这里边儿我们是把这个。对,因为这儿声明这个接口啊,顺便呢,我们就去把这个接口啊,把他的这个具体的实现啊,或者对外暴露的这个呢,给他这个声明好。它所在的这个位置哈。肯定是放在我们API的这个model里边,然后呢,我们也去给他去建这么一个包啊,生明这么一个接口,在这个接口上面呢,需要使用到我们的这个相应的注解。哎,接口上面需要使用这个fainland啊,我们要使用fainland的话,那么呢,我们就需要呢,导入这个FA的。呃,这个starter open啊,导入它的starter,然后呢。呃,十几类还是需要用到的啊,因为你在这儿,你看这不是这里边儿会用到这个十几类啊,这是它返回值的一个泛型。所以设计类是要的工具类呢,这里边儿因为要用到result enity,所以说需要用到我们这个工具的这个包。
06:06
哎,我们可以呢,到这个。我们API这边。嗯,NTT和U已经加上了啊,所以这两个就加上了,所以我们需要加的呢,是这个open的这个依赖。把这个加上以后,我们就可以来声明一下我们这个接口,哎,这个呢,对外啊,大家知道我们这个叫MYLR就行。Com点艾特硅谷点in Peru。点count。哎,点这个Mexico provider。这里边儿需要注意哈,我们拿这个,呃,Client。
07:05
先倒一下包。嗯,啊,这边这个涉及到很多需要下载的哈,我们这个新建的本地仓库里边没有,它需要重新去下,所以说呢,它在没下没下载完的时候呢,这个地方它还倒不进来,让他先在这儿慢慢先下着,我们来这儿呢,来这个加一下这个注释哈。Client这个注解。将当前接口标记为哎,服务暴露接口,然后呢,它里边有一个内幕属性。指定为暴露服务的,哎,这个为服务名称,所以说我们这儿如果已经这么写了的话啊,将来我们在买q provider这儿呢,声明服务名称的时候,就得跟这是一致的啊,你你这两边呢,你甭管改哪边,你两边这个必须得是一致的。
08:07
现在这些个加班下载完了以后呢,咱们去导入一下,包括这块。Emp request entity啊。行啊,这回这个时候他已经没有这个不报错了。呃,然后呢,这里边还有一个需要注意的,就是说啊,我们曾经曾经在学S亡C的时候,大家想必可能了解过这么一点说啊,如果是请求参数的名字和这个行参的变量名如果一致的话,Request per room这个注解可以省略,但是我们远程调用的时候,暴露接口的时候,即使它们一样,这个request注解也是不能够省略的。所以我们这儿呢,可以给大家加这么一个注释啊,Request这个注解无论如何不能省略好嘞。
09:02
哎,保留这加上我们这个,呃,改成我们家乐注释的,然后接下来呢,有了这个接口以后,我们就是看啊MySQL provider呢,如何去真正的完成这个对外提供的服务。
我来说两句