00:00
下面呢,我们就在项目中整合网关实现请求转发过程,咱们做个实现,首先第一步,因为刚才提到网关使用呢,咱是基于服务进行操作的,所以第一步我们先建个模块,然后把它制作成微服模块,在那中进行注册,那我来实现一下啊,首先第一步我就这么来做,在咱们的。硅谷课堂parent下边我建个子模块,这个模块是一个慰问工程,我们给它起个名字,名字就叫做service下颌线getaway,把这个先做创建,这是咱的第一步。然后这个做到之后,第二步呢,在里边引入网关的相关依赖,这个依赖我从里边复制一下。咱把它拿过来。放到这个文件中,第一个是之前那个service YouTube工具类,然后第二个是getway网关,第三个是NAS,因为咱要在na中进行这个注册。
01:04
然后这个名字,咱们这个名字看一下啊,我们少了一个S,把这个改成我们当前这个。模块的名字啊,这给他改一下。所以现在啊,这一部分就完成了第二步,然后第二步做完之后,第三步咱们创建网关的启动类,在里边进行创建,那咱来到里边,我在这个位置呢,首先我先建个包。这个包我给它起个名字,com.at硅谷点上这个。在里边创建一个启动类。我们起个名字API getway application,然后把代码我们给他制过来,这是咱们启动类的创建,因为最后这个网关模块在na中进行注册,所以咱们加上一个注解,刚才咱们写到unable。
02:04
Discovery进行注册。这个写完之后,下面呢,咱们来创建它的配置文件,我在这里写下啊,配置文件result里边我们建文件,文件名字ob.properties。把内容复制过来,直接啊复制配置文件这个内容这部分拿过来。咱们看一下啊,第一个我网关的逗号用8333,跟之前不相同就可以了,然后下面名字这是纳克的路径,然后下面有其他配置,所以咱一会儿说啊,所以现在把配置文件也完成了,完成之后呢,我们来看啊,在配置文件中就是这个位置是它的核心部分配置,咱们那个路由的匹配关系。然后咱们看啊,首先第一个。这个值变成处,把这变成true之后,能通过咱的路径到那个na中找到负进行转发,你看啊,UN等于处进行这个复发现的路由,然后下面是我们的模块配置,里边有三个部分。
03:11
然后咱们看一下啊,大家看啊,第一个是什么。这是什么?其实就是你Co里边注册服务名字,那咱们看啊,我这服务叫service vod,而注册的服务名字就是配置文件中的这个名字,所以加上它,然后再往下看。这什么意思啊,有一个叫LB。LB什么意思?是个简写,它的全称叫做load balance。就是负载均衡里边加上服务名字,第三个是路径匹配,这个路径要结合你的接口进行实现,那咱找一下啊,看一下我们的接口,我把这个找到。因为我们的接口呢,应该都是这个名字,我的min vod后面加上它的其他值,所以里边加上就是你路径的品位关系,大家看啊,第一个星号,我的me,第二个vod,第三个两个星号代表它可能有多层路径,所以根据它能品味到,当你路径是这个规则,那他怎么做,他就到na中找到这个服务,然后在服务中完成请求的这个调用。
04:24
所以现在啊,我们做了配置,然后你看配置中是不是加了一个零啊,如果说咱们再做配置,那大家说怎么写。你说怎么做,这一段内容是不是再复制一份呀,然后这里面是不是加个一就可以了,这个流程后面咱再配置,目前把vod的模块完成配置。所以以上啊,咱们就完成了项目中整合NAS,咱后面都是通过narcos精房,就是我访问路径看这张图里边8333,然后通过8333跳转到不同的服务中去,这个我们就做到了啊,做到之后呢,这里边呢,咱们继续来看啊。
05:06
通过网关,因为大家看啊,每次访问咱们是不是先都到网关呀,通过网关是不是再转化到不同服务中去啊,那在网关中咱是不是能做一些统一的处理啊,比如说统一的健全是不统一的判断,或者说咱之前的跨域,那我们在网关中是不是能做统一处理,而就不需要在每个CTRL上面都加这个注解。大家看啊,你看我们之前的代码中是这么写的。我有这么多ctrler,每个CTRL上面是不是都需要加上跨域注解啊,而现在咱可以把这跨域处理在网关中进行实验就可以了,那下面再来做一下啊,看它怎么做跨域,咱们提到啊是浏览器对阿杰格斯请一种限制,那我们来做个实现,怎么实现呢?Getway中呢,给我们提供了一个专门解决跨域一个filter过滤器,再用它进行设置可以了,我们在里边建个配置类,用到它跨域解决的过滤器,最终把跨域可以解决,那最后我们来实现一下啊。
06:16
我在网关里边呢,比如现在我再来个包。这个包我给它起个名字就叫做config config里边咱们建一个配置类,上面加上注解。Configuration,然后配置类里边我们加上这么一个方法,我把方法复制过来,咱们看一下啊。首先你看啊,里边就是new叫cos web filter的一个对象,就是filter一个过滤器,是由getway里边封装的,然后把它在此进行注册,这样的话进行跨越,然后在里边你看啊,设置了很多叫a load什么意思?是不是允许就是允许你这些操作,然后最终路径的一个设置。
07:05
啊,包括里边有这个依赖引住。现在通过这个配置类,我们就能解决跨域的问题,这个就做到了,然后这个完成之后大家注意啊。咱们就是你要用网关解决跨域,你需要再改个地方,就是之前CTRL上面的这个注解都要去掉,如果不去掉跨域就不能解,就好比说你现在啊,我进入网关。把跨域解决了,然后CTRL里边就不需要再解决,如果CTRL里边你再加上这个注解,就好比说我现在跨域已经跨出去了,你加了注解之后又跨回去了,等于说就没有解决,所以咱们要么网关解决,要么CTRL上边把注解去掉,我现在用网关做统一处理,所以咱们下面把CTRL里面这些注解都需要给它去掉,咱后面就不需要这么做了,后面这注解都不需要加了,我现在啊给他快速去掉一下。
08:08
就是里边这么多ctrler都去掉一下啊,因为咱们是讲课,所以咱们最开始这么写的,后面啊咱们网关解决,而在开发中用网关可以直接解决,就不需要再加这个注解了。这个啊,咱们可就去掉。呃,这个是微调部分。然后这是那个video v的部分,还有最后一个videod这个视频部分,这些都去掉,所以以上啊,咱就把这个网关整合到了我们项目中,这个就做到了,然后做到之后呢,最后说明啊,就是咱们整完网关之后,后面咱们要再启动项目,需要启动目前有两个服务,第一个是我们的vod,然后第二个你需要把网关服务启动,就是现在咱每次需要启动两个服务才能进行我们最终的操作。
09:03
那我现在把这个都启动,一个是vod,一个是getway网关,两个服务咱们完成启动。现在啊,这个整合完成了,完成之后呢,最后咱们改一下前端。那咱看一下啊,前端里边呢,之前咱们有个文件,这个文件大家看啊,这里加的是8301,咱们现在把这逗号号改成网关的端口号,我的网关是8333,后面通过网关做统一处理,这个别忘记改啊,我再说一遍,把前端的端口号改成getway,网关端口号咱目前都是通过网关进行访问。所以以上啊,就是在项目中整合网关这个过程,包括咱们通过网关也解决了跨域这个问题,那我们最后试一下这个效果啊,咱们试一下。
10:01
我先把F12点开,大家看第一个啊登录。是不是登进去了,然后你看登陆啊,他访问的路径是什么。是什么,是不是这个8333,比如说咱们再试一个,我们是一个这个课程的列表点击。数据肯定是有的,然后我们看啊,数据中它访问的路径是不是还是8333,所以以上网关就生效了,咱后面其他模块用网关做统一的系统转发,所以现在啊这个部分就做到了。就是以上部分要和各位掌握,第一个瓶可乐中的基本概念,第二个知道NAS的特点,执行过程,把服务能注册到na中去,第三个把网关能整合到项目中,通过网关最终实现请求转发过程。
我来说两句