00:00
我们也可以自己定制网关返回的这个数据,那么可以来参照网关限流的文档,我参照下边spring cloud getway,我们只要做好了这些数据,我们来监控好了这些资源,做了流控以后,我们可以在getway call bank manager里边注册回调,我们来通过定制把CTRLC复制过来,其实就跟以前其他的微服务一样,我们一旦出现问题以后呢,我们也做过一个回调,那就是在这只不过以前的微服务叫URL,现在我们在网关呢,那就是网关有它自己的回调,而且别的微服务的之前回调我们最好也不要给网关里边复制,也没啥用,那么自己来写一个sentel的getway,好,Sentel getway,我们网关的这个config an conffiguation,好,我们来做一个自己定义的配置,定义我们配置的回调,那跟以前一样,我们还是来写一个配置类,在这个配置类里边,我们来定义这个回调,这个叫getway。
01:01
Bank manager它呢有一个方法叫set block handler,设置我们的阻塞处理器,一旦呢被流控了以后,我们就应该传入一个这个叫block request handle点进来,它呢是一个接口在sc call bank这个包下,那么就复制过来。我们就直接拗一个这个接口,好,我们来创建出它,我们先来导入,导入呢大家注意一定要导的是sc call bank,就是这个我们把它呢导进来,然后呢,导的时候呢,我们在这来添加上实线就行了,这个实线里边好处理请求,那就是这一块,就是如果我们这个网关限流了,网关限流了请求,限流了请求就会调用我们这个回调,就会调用此回调,我们这个回调呢,返回一个mono server response,这个mono这种东西大家以后见到的这个可能会见到这些叫mono,还有flux,这都是我们spring引入的新特性,响应式编程,我们特别呢,Webx来使用响应式编程也会也能承担大量的高并发,它这一块呢,要返回这个moo server response,那么就来给他返回就行了,这个server response呢,这是一个接口,那这个接口呢,又定义了。
02:19
非常多的方法,那现在呢,自己想整一个数据,比如这个数据呢,就是我们以前的R对象,那以前R对象里边呢,假设呢,还有一个errorr呢,那么这个A呢,我们就来定义一个,比如叫base code,我还用自己的枚举状态码,我们有一个叫too many request状态码,就叫这个code,然后包括message们base code,我们的这个too many request的message我们拿过来。所以这是我们自己的这一块R对象,我们以前呢,希望把它作为杰森返回出去,比如我们可以准备一个杰森图string,把我们这个arow呢来准备过来,我们现在就叫arow杰森,我们把这个杰son呢想返回出去,那怎么返回,我们就要按照人家weblox的编程模式来写它返回一个moo什么什么什么,那我就直接在这写,我们现在呢,不去详细讲解web flagx。
03:12
这块响应式编程呢,我们给大家也有文档,这个高级片呢,有专门的reactive这个web flas这一块的响应式编程文档来照着,文档呢先在看一下,我们有机会再来详细说,那么现在就直接来编写,我们有一个叫model,既然它要返回model,我们就来使用model model呢有一个方法叫just just呢我们可以来指定一个数据,Mon是返回零个或一个数据,是零个或多个数据,所以我们现在呢,Just我们现在就要返回这么一个数据,我来写一个just,但这个数据呢,我们要返回的是mono的server response这个类型的,所以我们来看啊,如果mono这么来写的话,Mono点一个just,我写了一个string类型,大家看返回的这个mono,它是一个mono string,所以这个just里边呢,还得传一个server response这个才行,我们就来直接来写model,我们就给他准备返回一个数据,Just,你要传server response,我就准备一个server。
04:12
Response,但是这个sorryr response呢,直接有这些方法,我们来给大家看一下,Sorry response里边呢,有一个方法叫OK,那相当于我们准备了一个成功的响应,但是响应的数据是什么?我们这直接还有一个body body呢就是指定数据,但是这个body呢,我们点进来,我发现呢,它是这样调用的,要传一个publish,那就是数据的发布者和你发布的数据是什么类型,所以我们就来写一个publish,我们的发布者,我们直接用mono来做就行了,Mono就可以来发布一个数据流出去,好,我们就叫mono,但这块具体是什么意思,大家就不去理解太多了吧。好,我们就来整一个just,我准备用mono just来发布一个数据,然后呢,这个数据是string类型的,我们就可以来指定它是一个string.class.class好,来指定好,指定好以后呢,我们serve response OK OK呢,先是准备了一个成功的响应,然后它的玻璃数据是这样,整个呢,返回的是一个,诶,我们发现返回的就是一个moo server response,所以我们直接把这个往出一返就行了,它这一块要什么我们就给它返什么,那这一块的演示代码我就CTRLY来。
05:22
注释掉,好,那现在呢,这一块自己的回调我们就写上了,我们希望呢,错误以后能返回我们自己的数据来测试一下。我们重新来启动我们的这个网关,只要网关一被限流以后,就应该返回我们自己的数据,以前是429什么block的by sentel来看,现在会是什么,那关于这个web plus响应式编程这一块呢,大家就持续关注我们这个上硅谷发布的SPRING5最新的这些特性,好,我们现在来做一个测试,我们先来到我们的整个控制台,我们重新来登录我们的sentel sentel。来登录进来我们的网关,那网关这一块呢,我们来的这个流控,我们来重新来控制一下,随便发一个请求,我们这个网关呢,让它启动起来,请求一过来以后,我来一刷新,每一个服务呢,大概呢都感知到了,然后现在其他没感知到服务,你调一下请求就行了,来到网关这一块,我们就来请求链路里边,我们直接来做一个流控吧,我们现在流控呢,控制的就是我们的这个叫second。
06:26
鼓励ma com,当然我们要控这个呢,我们网关里边的配置是这样子的,我们就来控制住这个路由规则,我们现在呢就来添上一个流控配置。Root ID是他,然后呢类型QPS我们来控制QPS,我们两秒呢不能有一个,然后我们来点一个新增我们这个流控的规则,加上以后,我们现在来做一个测试,我来点一个圣圣的好,我们现在呢默认呢是成功,然后接下来只要一有失败以后,诶我们返回的数据就是我们自己定义的是扣的是1002,然后呢,Message是请求流量过大,所以现在呢,我们这一块呢就已经完成了,我们有自定义响应的这个数据还是一样,大家呢可以自己先来学习一下我们给大家的这个web flex这个文档图do,然后呢我们这个响应式编程。
07:17
这个呢也非常好用,特别我们用了响应式编程,能天然的支持我们这个大并发系统,只不过响应式编程呢,在好多框架的底层,包括数据库,现在呢还没有做大范围的支持,只要大家伙全部支持了响应式编程,那么去来构建一个高并发的服务是非常容易的,好大家可以先提前预习一下这么来做的,整个网关的流量控制,以及自定义返回的数据。
我来说两句