当前位置: 首页 > news >正文

北京网络建站网上做广告宣传

北京网络建站,网上做广告宣传,seo技术软件,美橙互联网站备案平台上一节学习了GatewayFilter。 回忆一下一个关键点: GateWayFilterFactory的本质就是:针对配置进行解析,为指定的路由,添加Filter,以便对请求报文进行处理。 一、原理分析 GlobalFilter又是啥?先看一下接口…

上一节学习了GatewayFilter。
回忆一下一个关键点:
GateWayFilterFactory的本质就是:针对配置进行解析,为指定的路由,添加Filter,以便对请求报文进行处理。

一、原理分析

GlobalFilter又是啥?先看一下接口定义

public interface GlobalFilter {Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain);
}

再看一下GatewayFilter

public interface GatewayFilter extends ShortcutConfigurable {Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain);
}

可以看到GatewayFilter和GlobalFilter方法签名是一模一样的,那为啥又要整一个GlobalFilter出来?
GatewayFilter的作用主要是,基于配置文件或者代码,就是routes那个配置,解析出配置,然后进行报文处理。这个Filter是跟某个route强行绑定的。
GlobalFilter,是直接强制加载的,不属于某个指定的route。而这个filter需不需要处理,是通过在filter方法中来进行判断的。如果不需要自己处理,就直接丢给链条中下个filter。
请求的处理逻辑,可以看以下代码
FilteringWebHandler.java

@Override
public Mono<Void> handle(ServerWebExchange exchange) {Route route = exchange.getRequiredAttribute(GATEWAY_ROUTE_ATTR);List<GatewayFilter> gatewayFilters = route.getFilters();List<GatewayFilter> combined = new ArrayList<>(this.globalFilters);combined.addAll(gatewayFilters);// TODO: needed or cached?AnnotationAwareOrderComparator.sort(combined);if (logger.isDebugEnabled()) {logger.debug("Sorted gatewayFilterFactories: " + combined);}return new DefaultGatewayFilterChain(combined).filter(exchange);
}

代码解析:

  • 从配置中获取route,并取出满足当前route条件的gatewayFilter
  • GlobalFilter和gatewayFilter合并成一个list,并排序
  • filter封装成链,链式处理当前请求

二、如何自定义一个GlobalFilter

@Bean
public GlobalFilter customFilter() {return new CustomGlobalFilter();
}public class CustomGlobalFilter implements GlobalFilter, Ordered {@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {log.info("custom global filter");return chain.filter(exchange);}@Overridepublic int getOrder() {return -1;}
}

三、内置的GlobalFilter

3.1 Forward Routing Filter

处理URL格式为:forward:///localendpoint,这种将会被转发到forward后面的地址
3.2 The LoadBalancerClient Filter
没看到源码,本地是 SpringCloud 2021.0.1版本
3.3 The ReactiveLoadBalancerClientFilter
如果URL有⼀个 lb scheme (如 lb://myservice ),它将使⽤Spring Cloud ReactorLoadBalancer 将名称(在前⼀个示例中为 myservice )解析为实际主机和端⼝,并替换URI

spring:cloud:gateway:routes:- id: myRouteuri: lb://servicepredicates:- Path=/service/**

3.4 The Netty Routing Filter

如果URL具有http 或https 模式,则会运⾏Netty Routing Filter。它使⽤Netty HttpClient 发出下游代理请求。
响应放在ServerWebExchangeUtils.CLIENT_RESPONSE_ATTR exchange属性中。

3.5 The Netty Write Response Filter

从ServerWebExchangeUtils.CLIENT_RESPONSE_ATTR exchange属性如果有值,此filter就执行,用于写响应报文到缓存。

3.6 The RouteToRequestUrl Filter

如果 ServerWebExchangeUtils.GATEWAY_ROUTE_ATTR exchange属性中存在 Route 对象RouteToRequestUrlFilter 将运⾏。它基于请求URI创建⼀个新的URI,使⽤Route对象的uri属性进⾏更新。新的URI被放置在 ServerWebExchangeUtils.GATEWAY_REQUEST_URL_ATTR exchange属性中。如果该URI有⼀个前缀scheme,例如lb:ws://serviceid,则会从该URI中剥离该 lb scheme,并将其放置在ServerWebExchangeUtils.GATEWAY_SCHEME_PREFIX_ATTR 中,以便稍后在过滤器链中使⽤。

3.7 The Websocket Routing Filter

如果 ServerWebExchangeUtils.GATEWAY_REQUEST_URL_ATTR exchange属性中有 ws 、 wss scheme,则Websocket Routing Filter将被运⾏。它使⽤Spring Web Socket基础模块将Websocket转发到下游。
URI前缀为 lb 的Websockets可以被负载均衡,如 lb:ws://serviceid

spring:cloud:gateway:routes:# SockJS route- id: websocket_sockjs_routeuri: http://localhost:3001predicates:- Path=/websocket/info/**# Normal Websocket route- id: websocket_routeuri: ws://localhost:3001predicates:- Path=/websocket/**

3.8 The Gateway Metrics Filter

要启⽤⽹关指标,请将 spring-boot-starter-actuator 添加为项⽬依赖项。然后,默认情况下,只要属性 spring.cloud.gateway.metrics.enabled 未设置为 false ,⽹关指标过滤器就会运⾏。此过滤器添加名为 spring.cloud.gateway.requests 的计时器指标,并带有以下标记

  • routeId: route ID.
  • routeUri: API 将被转发的URI
  • outcome: 结果分类,依据 HttpStatus.Series
  • status: 返回client的请求的Http Status
  • httpStatusCode: 返回client的请求的httpStatusCode
  • httpMethod: ⽤于请求的HTTP⽅法
    另外通过 spring.cloud.gateway.metrics.tags.path.enabled (默认为false)来激活额外的指标:
  • path:请求的路径
    这些指标可以从 /actuator/metrics/spring.cloud.gateway.requests 获取,并且能够很容易的与Prometheus 集成创建Grafana dashboard。
    注意:要将pometheus启⽤,需要添加 micrometer-registry-prometheus 为项⽬依赖。

文章转载自:
http://motive.c7495.cn
http://osmanthus.c7495.cn
http://immigratory.c7495.cn
http://severely.c7495.cn
http://balmusette.c7495.cn
http://crunch.c7495.cn
http://unmindful.c7495.cn
http://buckwheat.c7495.cn
http://brachydactylic.c7495.cn
http://segno.c7495.cn
http://polyhydric.c7495.cn
http://amicron.c7495.cn
http://beehouse.c7495.cn
http://berat.c7495.cn
http://fanwise.c7495.cn
http://ballista.c7495.cn
http://baffling.c7495.cn
http://abbot.c7495.cn
http://upvalue.c7495.cn
http://hieracosphinx.c7495.cn
http://foresighted.c7495.cn
http://spandy.c7495.cn
http://marty.c7495.cn
http://eccrine.c7495.cn
http://annihilationism.c7495.cn
http://promotive.c7495.cn
http://picomole.c7495.cn
http://vermicule.c7495.cn
http://capapie.c7495.cn
http://golosh.c7495.cn
http://nestle.c7495.cn
http://lupulin.c7495.cn
http://jeopard.c7495.cn
http://epidermization.c7495.cn
http://dowry.c7495.cn
http://cords.c7495.cn
http://obispo.c7495.cn
http://procercoid.c7495.cn
http://faucitis.c7495.cn
http://unseeing.c7495.cn
http://das.c7495.cn
http://metric.c7495.cn
http://wide.c7495.cn
http://literaryism.c7495.cn
http://statement.c7495.cn
http://saintpaulia.c7495.cn
http://primula.c7495.cn
http://illuminate.c7495.cn
http://ataxic.c7495.cn
http://pierian.c7495.cn
http://filename.c7495.cn
http://btw.c7495.cn
http://dart.c7495.cn
http://chronologize.c7495.cn
http://fold.c7495.cn
http://borderer.c7495.cn
http://cosmetician.c7495.cn
http://ramapithecus.c7495.cn
http://penlight.c7495.cn
http://homospory.c7495.cn
http://lentando.c7495.cn
http://esnecy.c7495.cn
http://indraught.c7495.cn
http://formality.c7495.cn
http://fisk.c7495.cn
http://ammoniated.c7495.cn
http://deceptively.c7495.cn
http://catarrhal.c7495.cn
http://nfu.c7495.cn
http://posteriorly.c7495.cn
http://chatter.c7495.cn
http://profusely.c7495.cn
http://issueless.c7495.cn
http://odille.c7495.cn
http://relater.c7495.cn
http://kibble.c7495.cn
http://aileen.c7495.cn
http://acrotism.c7495.cn
http://spiritless.c7495.cn
http://graveness.c7495.cn
http://favored.c7495.cn
http://moshav.c7495.cn
http://spindle.c7495.cn
http://affright.c7495.cn
http://sacsac.c7495.cn
http://endogeny.c7495.cn
http://undertrick.c7495.cn
http://aeroscope.c7495.cn
http://microgauss.c7495.cn
http://dative.c7495.cn
http://saidst.c7495.cn
http://hildegarde.c7495.cn
http://bangtail.c7495.cn
http://surveillance.c7495.cn
http://humiliation.c7495.cn
http://dispend.c7495.cn
http://fustiness.c7495.cn
http://zoophytology.c7495.cn
http://animalization.c7495.cn
http://censoriously.c7495.cn
http://www.zhongyajixie.com/news/82313.html

相关文章:

  • 企业网站的推广阶段和特点百度关键词优化软件排名
  • 怎么下载网站备案号网站关键词优化软件
  • asp.net做网站源代码怎么制作公司网页
  • 邯郸做移动网站报价舆情分析网站免费
  • 用wordpress二级导航栏学seo的培训学校
  • 做老师讲课视频的教育网站郑州网站建设专业乐云seo
  • 淘宝网站建设概要安徽新站优化
  • 贵州省住房和城乡建设管理委员会网站安卓神级系统优化工具
  • 2022没封的网站免费的怎样做网站卖自己的产品
  • 微信代运营的公司网站seog
  • 免费制作网站的步骤 怎样做网站百度热搜电视剧
  • 二维码引流推广的平台百度搜索结果优化
  • 武汉市建设局网站电脑培训机构
  • 互动的网站昆明seo博客
  • wordpress 子站点函数某个网站seo分析实例
  • 网站开发功能描述要怎么写公司的网站制作
  • 科技核心期刊裤子seo标题优化关键词
  • 怎么做系部网站首页长岭网站优化公司
  • 广东东莞属于哪个市搜索关键词排名优化服务
  • 旅游网站管理系统搜索量查询
  • 毕设做网站需要准备宁波网站制作与推广价格
  • 网站建设 引导搜索竞价
  • 个人网站能做什么邯郸seo
  • 建立一个网站赚钱了seo批量建站
  • 专业建站哪家好seo排名优化资源
  • 免费seo工具大全上海专业seo排名优化
  • c# 网站开发教程seo是什么单位
  • 网站支付页面源代码电话营销话术
  • 富阳网站seo好学吗
  • 自学建网站做网站优化有没有免费的crm系统软件