00:00
好,同学们,接下来我们给大家介绍一下predict,那么路由给大家说过了,那么这个predictate。断言又是什么东东呢?那么不妨我们启动一下我们的GETATEWAY9527,我我刚才下课期间呢,重启了一下哈,我们看看启动的idea后台微服啊,它会有一些什么东东。加载路由predictate factory,什么after before between cooking head host master等等等等等等,有这么十多种。什么意思啊?我刚才重启了一下我们的这个9527,好同学们,我们往下看后台哈,9527的。有没有发现?会有这些东西,那我们这儿是不是有一个路由pretty的工厂啊,那。不用多说,我们现在是不是pretty,你看啊,路由是不是S啊,我现在这个S就像是一个list list集合一样,现在是不是我们的路由地址。
01:07
在同一个名字里面要转发两个,一个是8001GET,一个是我们的8001LB,当然我们配了负载均衡,反正指认微服务名字。具体点说是不是就是这个微服务配get,这个微服务配B,那么在这个路由下面,我们现在ID讲过了微信的标识名字啊,那么现在是不是已经有了一个路由,那么这个是一个路由,这个每个ID就是一个路由,ID就是,那么现在路由是不是有两个,但是请大家看下面predictate这什么东东,是不是也是S,也是多个,那么言下之意就是说在这个路由里面,只要我们的predictate是真的。比方说我们去找,在这个微服名字下面能找到get这样的,OK,那么predict是真的错。反问,好,那现在我们这个predictate只讲了一种pass,怎么知道呢?大家请看这是不是有pass啊,说明我们现在用的路径也是这个路由的里面的其中的一个,那么以此为突破点,我们来看看其他这些是何方神圣,好,那么这些用好了我们的网关的这个。
02:16
如由转发功能将会进一步加强哈,你可以把它理解为就是什么,包括这个后面我们待会会可能会要讲讲过滤器什么的啊,都是什么,像我们写s while条件后面的end and and那些条件,那么越来越多的精确度匹配越来越多,那么这样的话是不是查到的结果也就越来越详细和精细,好,那么同学们,这是我们的prettyate,那么这是个什么东东呢?打开我们的官网,找到我们的四,那么这个时候官网地址在这儿,那么路由predict factory,大家请看。到时间官方自带的predict有多少种,11种之多,那么它的配置是什么意思呢?比如说。他这after第一个叫请看predictate加这么一个什么概念,他的意思就是说这个匹配的请求的话,要从2017年的一月。
03:12
20号以后这个地址才生效,这么说能跟上,相当于说我们的搜Q里面加了要条件,那么这个路由地址过来具备,但是他的请求的条件是什么?必须是WHY啊,比方说我们的birthday,或者是。Date日期要在这个之后才起效,所以说这个就是一个配置性的加强,那么至于说它这个是个什么,那么我们。待会配置的时候咱们再说把上面的英文翻译一下给大家,那么可以看看匹配的是web flex的。Hand基础架构的一部分,它内置的一些工厂,那么主要来进行一些匹配,好那么这些理论的知识啊不再不再废话,接下来我们看看我们这些常用的来,它呢均来自于这个类,那么杨哥呢,提前给你们大家呢做好了这个架构图,由于这个打开比较慢,我提前做好功课,那么大家请看pass路由,那么这个时候是我们用过的。
04:11
我们先拿我们用过的钱,这个是不是路由下面有个predict,看看这个路径布尔值判断正不正确,在这个微服务名称下面有没有这个支付微服务,有get,有LB这样的路径。如果是错。访问路由成功,如果是force不允许访问路由,那么方法主机表头还请求头,然后between OK,那么我们呢?给大家做一下演示,当然时间的关系啊,十多种,我呢就抽取一部分,挨个挨个给大家呢,讲了也没什么意思啊,我讲几个,然后呢,大家呢,在后续的作业和过程当中自己做几个好,那么接下来我们呢,来看一下这个after这个动作,那么刚才讲过了,就是在什么什么时间之后,好,比如说啊同学们。
05:01
我们现在要干的时间,请看它这个时间是要有这样的一种格式啊,你也会说比方比方说哈,现在呢,我要求在这个2020年2月25号以后,18号以后,17号以后,那你怎么得到这样的时间日期格式。OK,配倒是好说,一粘不就完了吗?比方说这儿,我把它拿过来,同学们look。明白渣就行了,可问题就是美国时间,我们这儿是中国。另外一个要换别的时间,你怎么知道这些东不懂呢?所以说我们是不是要先要按照这样的格式得到当前时间啊?好,我们这儿先写一个配置类和一个测试类。好,那么同学们跑到这儿。我们这儿。没办法,写起来这一波没有问题吧,以后怎么得到这个时间呢?杨哥呢,给大家写好了我们JAVA8的一个新时期,上述这个阿好就是在这个时间,以后这个时间串串怎么获得来,弟兄们,就是我们JAVA8里面的Java time,宋文康老师给大家讲解过,我们直接拿过来用,那么同学们。
06:19
一跑这个时候我们一运行,我这就不加那些什么at test了,那些不是重点哈,不废话了,那么来同学们请看现在是不是得到了我们的当前时间。是不是这么一个通道。兄弟们,没问题吧?2020年2月21号下午03:51 37分,你看亚洲什么上海,你别到时候写成北京时间了,那是老外他认的是上海,听懂了吧,那么好,我们把这个时间。拷贝。那么把这个时间。一覆盖,那么意思,也就是说现在要在这个时间之后,我们的LB这个请求访问才有效果,好那么粘贴以后,那么大家看一下。
07:06
嗯。干脆哦,好,自动重启了,那么这样是最好,那么意思就是说2月21号以后03:51,那么刚才我们讲话讲了这么几秒钟,他肯定已经过去了,这么说没问题吧,那么好,同学们,我们大家搂一眼,还是刚才这个。大家请看12121212没问题吧,好,那么自然而然假设要在这个之后,那比方说还没到这个时间呢,我们要把它改成比方说一个小时以后。那不好意思啊,现在是不是还没到四点钟呢,那么换句话说,是不是LB这个路由加这个的话,是不是要告诉你地址要匹配,并且时间要是04:51以后才能正常访问,那么好,我们呢,闲聊的这几分钟,等他后面重新启动,那么如果一切顺利,我们现在访问是不是就应该报错,这个就被禁止了呀?好,那么重启完成,那么下面我们来看一眼,这个时候一回车,大家请看。
08:04
怎么着,他是不是告诉你404啊note found,你看这个路由规则这样做就像网管一样的配置相当顺滑,那这个有个什么好处啊,比如说你先做一个。系统你们一次次需求迭代上线了,那我要求什么时候才启动,假设现在你又害怕,那么这个时候我们是不是为了保证时间的话,那了不起,我提前上线,我3月21号以后才起效,这么说能跟上好,那么这个就是我们的阿,我相信同学们这个重点其实说穿了是不是主要就是这一句话,OK,那么Java time时区data time,那么这个时候默认时区打出来,那。OK,其他的就是按照官网上这么一站。解决无非就是我们路由地址啊,唯一性的路由地址啊,匹配了以后加的这些条件。匹配全是为错才能打败好。那么。
09:01
这个就是我们刚才讲解的第一个pretty,那么这个讲完以后,同学们before between会了吧,那么所以说这个比方说这个时候after,这个是before,那么这个是什么?是不是我们的between,那么这个是粘两个,这么说没问题吧,那么粘一个你会粘两个,不用我讲了吧,所以说学了一个。之后学会了,那么之前和之间,那么兄弟们,我们呢,就给大家。讲到这就不再演示这个,那么请大家现在拍一下试试,好,那么都成功了,那么同学们我就不再废话,这是时间级别的,那接下来请看第四个cookie级别的,好,那换句话说的话呢,就是说你在反问的过程当中。带cookie和不带cookie允不允许访问,甚至要带什么样的cookie是正常的才允许你访问,那么在这儿我们为了给大家的知识的广度和后续测试上,那么有一些新的通道,我们这儿说一下啊,一般哈,我们在这个微服架构的测试的话呢,有一些辅助的,那比如说哈,同学们第一个比方说是我们压测吉密。
10:16
对吧,第二个是不是我们的top postman对吧,第三个Carl。OK,那么这些都可以模拟发送我们的get和post请求,由于我们本次讲解的话,我就不不再想去装一些web呢,去装一些cookie的这么一个。反过来你有一些cookie扔进来,那么所以说我们这儿并且教会大家用CRCURL这个命令来进行我们的微服的调试,好,那么同学们请先看cookie,很简单。可看减号张cookie,那么它这个意思就是它需要两个参数,一个是cookie name,一个是一个什么鬼正则表达式,听懂了吗?那么路由规则会获取对应的cooking name和正则表达式值去匹配,合适了就执行,不合适就不执行,因为predictate是不是就是true和force断言嘛,好,那么下面我们呢。
11:13
找一下我们的。CMD这个命令,那我们不带cookie访问和带cookie访问分别是什么意思呢?我们先来看看我们的亚M的配置啊。我这块的配置呢,很简单,I'be这块啊,After before between,我就不再演示了,那么我带上一个cookie,那么这个cookie呢。So easy,也就是一个要这个cookie里面要有个K键,对吧,你把它当做key是U在name,然后这个是要ZZYY,好,那么下面兄弟们粘了以后,我们这个9527要等它重新启动,一边重启一边,我给大家介绍一下我们的CURL这个命令如何发get和POS请求来做我们微服务的测试啊,可以这么讲,它就是什么。Postman是个图形化界面,CURL就是图形化界面的命令,底层运行的就这么个通道,好,那么同学们我们来看看啊,现在我配了以后要求你带用户名和。
12:14
Username这个key value非得是这个,那么假设我不带cookie,反问,那么同学们请看我们这。假设我们这儿要干的活。来,当然我们这是不是我们的9527CURLG什么都没写,就写了个微服务的地址,相当于发了一个get请求听懂,那么这一块我们是不是payment LB,那换句话说,这个的意思是不是就是我们的九百二七网关,我们现在是不是都指认网关,你不要告诉我后面有什么80018007 80016 8033,怎么不关心这个微服务,下面我们要去访问LB,那么这个地址啊,一访问就要符合断言匹配第一个。这个时间还没赶过来啊。
13:00
必须是03:51分之后,第二个是不是要带着name和我们的value池一回车,看看我们这个是否OK,当然哈,等它重启一下,我先暂停一下录屏,那同学们启动完成,那么这个的意思呢,就是首先要符合两个条件,03:51分之后,并且你要带着cookie,那么我这样的去发送是不是就是只发了一个get请求,没有带cookie,那么这个时候同学们请看一回车告诉你404NOT find不让你匹配这一波能跟上,那么我们假设后面的作战的配置啊,真真正正上我们的。VC啊,Web的那些东西过来,带着这个cookie,那么这个时候我们来模拟,那么它又会是什么样,来,同学们。接下来什么?如果说我们带上cookie访问,那么这个时候同学们请看。还是刚才这个我们这个里面就告诉人家我们带着cookie TV建筑队是这么一回事,同学们请看是不是返回了我们8002,那么这个时候同学们我再来再来再来再来再来,请看只要你时间上匹配且带着我的cookie是不是一二一二一二一样的发我们的微服务的get请求,听懂了吗?而且只认一个网关端口9527,好,那么这个就是我们的带cookie相应的一个解析,那么假设啊,还有一种同学呢,是加入C和返回中文乱码,那么这个呢,无所谓,因为这个呢,实际工作中只是你拿来做测试,真真正到我们的环境上面,它呢就会变成中文,因为我们都是用UTF杠八,假设你非要是在测试环境里面CRL,你要保证你就是没有中文,那么就去看我给你的这个。
14:47
技术帖子就OK,好,那么在这块我们这儿呢,就完成了我们的cook体的演示,好,那么接下来同学们。一样。第五个had请求头,那么同学们请看。
15:02
它这个意思是什么呢?两个参数是不是一个是属性名称和一个正则表达式啊,这个属性值和正则表达式匹配,那么你看是不是跟那个cookie差不多啊,说穿了就是说上一个是你要带着cookie。值和K是什么,Value是什么?这次就变成不是cookie了,是代表一个HTTP的pad请求头,那么好,同学们,我们来看看这个又给大家进行什么样的配置啊,那么来这个配置啊,我们也就按照我的。文档就这么来配,那么同学们它的意思怎么着?是不是请求头要含有这么一个X request ID的属性,并且值为什么整数?那么待会儿我们来做测试的时候也简单,是不是直接拿这么一个就OK呀?那么这是不是我们的1234啊?如果是这个,那么就返回成功,如果不是,那么就报错好,那么同学们一边说一边等着它重启,那么现在。
16:05
回到我们的9527,那大家请看哦,当然他这块是不是带的东西要就越来越多了,那么在这块的话呢,我干脆啊,就先把这个和这个都注掉,一个条件一个条件的测,那同学们,我们这样的话把这两个条件注掉,要重启一会啊,这个有点麻烦,每次都要配置的话,都要重启好,那么下面我们就这个路径。固定死的LB,好说,下面就是你这个请求头是不是带着这么一个,并且还要是十为整数,这是个正则表达式,那么好,同学们我们粘贴,大家请看现在我是不是代表的意思就是U27这个路由地址带着我们的请求头杠HR代表是发带这么一个请求头值。K是叫这个,Value是叫这个,没问题吧,123是不是正数啊,那我不啊。我给你干个负数呢。
17:00
没问题吧,回车看到没有,马上不让你通过404I not found找不到,为什么?因为整个predict路由匹配是错,那么这个时候这个地址是废的,马上发过来的消息就是错误,好,那么同学们这个就是我们的第五个,那么第六第七第八留给同学们自己做一下这个测试啊,我们时间的关系,但是你看啊,都很简单啊,Host。那么什么概念,是不是也加这么一个主机啊,那么基本上这些的话呢,都是。干嘛举一反三的,比方说我这儿要含有星星点X的硅谷,那么这个时候才允许你使用,那么加请求头的时候,这个H2要代表是3w.at硅谷可以成功,news.at硅谷那么也可以成功,但是你这个什么都不带,没有这个host不好意思404报错,那么同学们按照这个文档能够跟得下来吧,那么这些我们快快的过一下,那么同学们。
18:04
九个的接近九个,那么杨哥也讲了前面的了,而且也告诉大家怎么用CL来发了,那么这个时候请后面这些大家回去自己学习一下,好,那么再来host讲完了我们再来说说方法,那么这个方法级别说白了简单吧。干method是get,也就是说你发get请求才允许访问,不是get不让反问,那么这个时候同学们请看我这儿粘了是个get就OK没问题吧,那么这个路由这个路径呢,就更简单了,我们这个路音路径pass是不是就这货O不OK,那么大家请看我们这儿。断言路径像这个把这个加起来,就是要在你的这个路由。下面要有两个条件LB,并且方法要是get方法才允许触碰和访问,那么最后一个带查询条件的,那么它的意思呢,也就是U在内,要有参数名user在内,并且值还要是整数才能路由,那么反问的话呢,也很简单,那么同学们都给大家呢做了详细的笔记,那么意思就是说。
19:09
我这个user内是正所31,你看要首先要带着这个。User name,并且还是正数,如果你是负30间,我马上就报错,好吧。那么同学们这些。我们举一反三,那么要求大家呢,回去呢?练练后面这两三个就行了,其实对吧,像这个这个你也不用去练习特意的对不对,这个和这个,那请大家呢,干嘛作为家庭作业去做一下,那么最后说穿了就是predict,就是为了实现一组匹配规则,让请求过来找到对应的路由进行处理,那么全部的内容实在不行,那么请同学们就把杨哥的这个粘过去,你想要哪一个就打开就行,那么后续那么大家的这个路由匹配这个断言,那么我们呢,就。获得了强大的功能加持,这么多也差不多够你用了,好那么这个就是我们常用的路由predict,就给大家介绍到这儿。
我来说两句