Gateway基于webflux实现,webflux大量运用流式编程,源码不易理解,但能很好的支持请求异步处理

Gateway过滤器分为全局过滤器(GlobalFilter)、局部过滤器(GatewayFilter)

全局过滤器:一般用来处理统一鉴权、访问安全控制、全局过滤器是非常常用的一种过滤器

局部过滤器:针对单个路由的过滤器,可以对访问的URL过滤,进行切面处理,对于单个接口进行限流操作

Gateway原生过滤器包含:LoadBancer(负载均衡过滤器)、ForwarPath(路径转发过滤器)、

RouteToRequestUrl(转换路由中的请求地址过滤器)

Gateway动态路由实现:

Gateway组件中的RouteDefinitionLocator用于存放route路由对象,真正可以执行route逻辑的是Route

Route路由对象包含

id(路由id)、predicates(断言,路径相匹配的进行路由)、filters(过滤器)、url(服务跳转地址)、order(执行顺序)

Gateway动态路由加载方式通过重写InMemoryRouteDefinitionRepository类来加载配置的路由规则,动态路由刷新需重新加载路由数据,动态路由可以配置nacos配置中心来使用,也可以通过mysql数据来配置。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注