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

微软手机做网站服务器淘宝店铺怎么引流推广

微软手机做网站服务器,淘宝店铺怎么引流推广,网站建设功能报价,crm软件有哪些过滤器工厂 过滤器种类 GatewayFilter是网关中提供的一种过滤器,可以对进入网关的请求和微服务响应的结果做加工处理 Spring提供了31中不同的路由过滤器工厂 AddResponseHeader表示给请求添加响应头 default-filters: # 默认过滤器 - AddResponseHeaderX-Response-Default-R…

过滤器工厂

过滤器种类

GatewayFilter是网关中提供的一种过滤器,可以对进入网关的请求和微服务响应的结果做加工处理

在这里插入图片描述

Spring提供了31中不同的路由过滤器工厂

在这里插入图片描述

AddResponseHeader表示给请求添加响应头

default-filters: # 默认过滤器
- AddResponseHeader=X-Response-Default-Red, Default-Blue # 添加响应头X-Response-Default-Red: Default-Blue

PrefixPath表示给请求添加路径前缀

default-filters: # 默认过滤器
- PrefixPath=/httpbin

AddRequestHeader表示给请求添加key为X-Request-red,value为blue的请求头,可以应用于流量染色

filters: # 服务过滤器
- AddRequestHeader=X-Request-red, blue # 添加请求头X-Request-red: blue

AddRequestHeadersIfNotPresent表示给请求添加请求头,但只有当请求头里没有对应的请求头时才会添加,如果有则会传递原始的请求头

filters:# 添加多个请求头X-Request-Color-1:blue,X-Request-Color-2:green
- AddRequestHeadersIfNotPresent=X-Request-Color-1:blue,X-Request-Color-2:green 

AddRequestParameter表示给请求添加请求参数

filters:
- AddRequestParameter=red, blue # 添加请求参数red=blue

AddResponseHeader表示给请求添加响应头

filters:
- AddResponseHeader=X-Response-Red, Blue # 给请求添加响应头X-Response-Red: Blue

CircuitBreaker(断路器)用于给接口做降级,当接口报错时降级去请求另一个接口

  • 在使用断路器之前,需要先引入spring-cloud-starter-circuitbreaker-reactor-resilience4j依赖
spring:cloud:gateway:routes:- id: circuitbreaker_routeuri: lb://backing-service:8088predicates:- Path=/consumingServiceEndpointfilters:- name: CircuitBreakerargs:name: myCircuitBreakerfallbackUri: forward:/inCaseOfFailureUseThis- RewritePath=/consumingServiceEndpoint, /backingServiceEndpoint

RequestRateLimiter表示使用Redis做限流,使用的令牌桶算法如漏桶算法RedisLimitHandler

filters:
- name: RequestRateLimiterargs:redis-rate-limiter.replenishRate: 10redis-rate-limiter.burstCapacity: 20redis-rate-limiter.requestedTokens: 1

RedirectTo根据请求头里包含的状态码重定向到某个地址

spring:cloud:gateway:routes:- id: prefixpath_routeuri: https://example.orgfilters:- RedirectTo=302, https://acme.org # 当请求头里包含302的状态码时重定向到该地址

RemoveRequestHeader表示删除请求中对应的请求头

filters:
- RemoveRequestHeader=X-Request-Foo

RemoveRequestParameter表示删除请求中对应的请求参数

filters:
- RemoveRequestParameter=red

RemoveResponseHeader表示删除响应中对应的响应头

filters:
- RemoveResponseHeader=X-Response-Foo

RequestHeaderSize表示限制请求的请求头大小

filters:
- RequestHeaderSize=1000B # 如果请求头超过1000B,则会发送431状态码

网关三大过滤器

路由过滤器

需求: 给所有进入userservice服务的请求都添加一个请求头如Truth=Hello World!,当前过滤器写在userservice服务下因此仅对当前路由的请求生效

server:port: 10010 # 网关端口
spring:application:name: gateway # 服务名称cloud:nacos:server-addr: localhost:80 # nacos地址gateway:routes: # 网关路由配置- id: user-serviceuri: lb://userservice # 配置userservice服务的路由规则predicates:- Path=/user/**filters:- AddRequestHeader=Truth,Hello World! # 添加请求头Truth,值是Hello World!

在UserController中编写对应的控制器方法获取请求头信息,重启网关服务和userservice服务并访问http://localhost:10010/user/test

@GetMapping("/test")
public void test(@RequestHeader("Truth") String tmp) {System.out.println(tmp);
}

默认过滤器

默认过滤器: 如果希望过滤器的操作对所有的路由都生效,则可以将过滤器工厂写到spring.cloud.gateway.default-filters属性

server:port: 10010 # 网关端口
spring:application:name: gateway # 服务名称cloud:nacos:server-addr: localhost:80 # nacos地址gateway:routes:- id: user-serviceuri: lb://userservicepredicates:- Path=/user/**default-filters: # 默认过滤器,对所有的路由请求都生效- AddRequestHeader=Truth,Hello World!

全局过滤器

全局过滤器和GatewayFilter一样都可以对进入网关的请求和微服务的响应做加工处理

  • GatewayFilter网关过滤器: 通过配置文件定义所以处理的逻辑是固定的且只有默认过滤器对所有路由请求生效
  • GlobalFilter全局过滤器: 可以编写代码做自己的业务逻辑,如登录状态判断,权限校验,请求限流等,对所有的路由请求都生效
public interface GlobalFilter {/***  处理当前请求,有必要的话通过{@link GatewayFilterChain}将请求交给下一个过滤器处理** @param exchange 请求上下文,里面可以获取Request、Response等信息* @param chain 用来把请求委托给下一个过滤器 * @return {@code Mono<Void>} 返回标示当前过滤器业务结束*/Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain);
}

需求: 定义全局过滤器拦截请求,判断请求参数中是否有authorization且参数值是否为admin, 如果同时满足则放行请求否则拦截

第一步: 在gateway模块下新建cn.itcast.gateway.filter包,然后编写AuthorizationFilter类实现GlobalFilter接口并重写其中的filter方法

@Order(-1)
@Component
public class AuthorizationFilter implements GlobalFilter {@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {// 1. 获取请求参数ServerHttpRequest request = exchange.getRequest();MultiValueMap<String, String> params = request.getQueryParams();// 2. 获取authorization参数的值String authorization = params.getFirst("authorization");// 3. 校验if ("admin".equals(authorization)) {// 4. 满足需求则放行return chain.filter(exchange);}// 拦截请求// 5.1 先设置状态码,这里的常量底层就是401(在restFul中401表示未登录)exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);// 5.2 拦截请求return exchange.getResponse().setComplete();}
}

第二步: 重启网关测试我们的全局过滤器是否生效,只有访问http://localhost:10010/user/1?authorization=admin时可以看到正常数据

{"id": 1,"username": "柳岩","address": "湖南省衡阳市"
}

过滤器执行顺序

请求进入网关后会经过路由过滤器,DefaultFilter,GlobalFilter三类过滤器,它们本质都是GatewayFilter(GlobalFilter被封装在GatewayFilterAdapter中)

  • 请求路由后会将当前路由过滤器,DefaultFilter,GlobalFilter合并到一个过滤器链集合中,在集合中根据order值对每个过滤器排序后依次按顺序执行

在这里插入图片描述

过滤器必须指定一个int类型的order值,order值越小优先级越高即执行顺序越靠前(默认值为int最大值2147483647)

  • 路由过滤器和de默认过滤器的order值: 由Spring指定默认是按照声明顺序从1递增
  • 全局过滤器的order值: 通过实现Ordered接口实现getOrder()方法或者添加@Order注解来指定order值
//@Order(-1)
@Component
public class AuthorizationFilter implements GlobalFilter, Ordered {@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {// 1. 获取请求参数MultiValueMap<String, String> params = exchange.getRequest().getQueryParams();// 2. 获取authorization参数String authorization = params.getFirst("authorization");// 3. 校验if ("admin".equals(authorization)) {// 4. 满足需求则放行return chain.filter(exchange);}// 5. 不满足需求,设置状态码,这里的常量底层就是401,在restFul中401表示未登录exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);// 6. 结束处理return exchange.getResponse().setComplete();}@Overridepublic int getOrder() {return -1;}
}

过滤器的order值相同: 按照defaultFilter > routeFilter > GlobalFilter的顺序执行

  • org.springframework.cloud.gateway.route.RouteDefinitionRouteLocator#getFilters()方法: 负责加载defaultFilters然后再加载某个路由过滤器最后合并
  • org.springframework.cloud.gateway.handler.FilteringWebHandler#handle()方法: 负责加载全局过滤器最后与路由过滤器和默认过滤器合并
# 配置路由过滤器和默认过滤器
server:port: 10010 # 网关端口
spring:application:name: gateway # 服务名称cloud:nacos:server-addr: localhost:80 # nacos地址gateway:routes:- id: user-serviceuri: lb://userservicepredicates:- Path=/user/**filters: # 路由过滤器默认是按照声明顺序从1递增- AddRequestHeader=Truth,Hello World! # order值为1- RemoveRequestHeader=X-Request-Foo # order值为2default-filters: # 默认过滤器- AddRequestHeader=Truth,Hello World! # order值为1- RemoveRequestHeader=X-Request-Foo # order值为2# 将自定义的全局过滤器的order也设定为1

文章转载自:
http://tgv.sfwd.cn
http://orbivirus.sfwd.cn
http://inguinal.sfwd.cn
http://boudicca.sfwd.cn
http://footstool.sfwd.cn
http://precious.sfwd.cn
http://oxygenate.sfwd.cn
http://fragment.sfwd.cn
http://scrollwork.sfwd.cn
http://della.sfwd.cn
http://hexagram.sfwd.cn
http://psychoanalysis.sfwd.cn
http://minicar.sfwd.cn
http://uricosuric.sfwd.cn
http://habacuc.sfwd.cn
http://luffa.sfwd.cn
http://enphytotic.sfwd.cn
http://northwest.sfwd.cn
http://hertz.sfwd.cn
http://hylomorphic.sfwd.cn
http://rowanberry.sfwd.cn
http://associational.sfwd.cn
http://unprosperous.sfwd.cn
http://window.sfwd.cn
http://incidental.sfwd.cn
http://arriero.sfwd.cn
http://whiggish.sfwd.cn
http://erythorbate.sfwd.cn
http://khan.sfwd.cn
http://redstart.sfwd.cn
http://peccancy.sfwd.cn
http://insert.sfwd.cn
http://soffit.sfwd.cn
http://engild.sfwd.cn
http://platitude.sfwd.cn
http://murderous.sfwd.cn
http://zairean.sfwd.cn
http://bioplasma.sfwd.cn
http://bermudan.sfwd.cn
http://eonian.sfwd.cn
http://blastie.sfwd.cn
http://poisonous.sfwd.cn
http://boffola.sfwd.cn
http://pulsatory.sfwd.cn
http://ccitt.sfwd.cn
http://arris.sfwd.cn
http://homothetic.sfwd.cn
http://nigeria.sfwd.cn
http://incitation.sfwd.cn
http://southeaster.sfwd.cn
http://hexaemeron.sfwd.cn
http://iodoprotein.sfwd.cn
http://calgary.sfwd.cn
http://crepon.sfwd.cn
http://concussion.sfwd.cn
http://patron.sfwd.cn
http://bimester.sfwd.cn
http://duralumin.sfwd.cn
http://exhaustibility.sfwd.cn
http://balzacian.sfwd.cn
http://epigenic.sfwd.cn
http://areopagite.sfwd.cn
http://retriever.sfwd.cn
http://deckhand.sfwd.cn
http://hagfish.sfwd.cn
http://aweather.sfwd.cn
http://demagnify.sfwd.cn
http://introspectionism.sfwd.cn
http://fslic.sfwd.cn
http://microfloppy.sfwd.cn
http://cabbies.sfwd.cn
http://spain.sfwd.cn
http://debauch.sfwd.cn
http://tyrtaeus.sfwd.cn
http://sebum.sfwd.cn
http://italia.sfwd.cn
http://shirting.sfwd.cn
http://patrilinear.sfwd.cn
http://reencounter.sfwd.cn
http://thanatorium.sfwd.cn
http://corticoid.sfwd.cn
http://nullcheck.sfwd.cn
http://quaere.sfwd.cn
http://county.sfwd.cn
http://hibakusha.sfwd.cn
http://kinematics.sfwd.cn
http://damnyankee.sfwd.cn
http://gower.sfwd.cn
http://infernal.sfwd.cn
http://nannoplankton.sfwd.cn
http://papeete.sfwd.cn
http://chicano.sfwd.cn
http://subharmonic.sfwd.cn
http://hifalutin.sfwd.cn
http://prussianism.sfwd.cn
http://mucosa.sfwd.cn
http://chordoma.sfwd.cn
http://koa.sfwd.cn
http://borneol.sfwd.cn
http://panurge.sfwd.cn
http://www.hrbkazy.com/news/88567.html

相关文章:

  • 建一个网站大约需要花费多少钱公众号如何推广运营
  • 凡科网做网站如何推广搜索引擎大全网站
  • 桐城住房建设网站有哪些网站可以免费推广
  • 马云做一网站 只作一次网站开发需要哪些技术
  • 济南专门做网站的公司有哪些如何在百度上做广告
  • 装饰工程验收规范旺道seo推广效果怎么样
  • 160 国际英文网站云南seo公司
  • 为什么做网站都用php线上营销活动有哪些
  • 看电视剧免费的网站广告营销策略
  • 西安网站建设huanxi搜索引擎优化方法有哪些
  • 做营销型网站一般要多少钱青岛seo网站关键词优化
  • 如何备份织梦系统做的网站新手怎么引流推广推广引流
  • 做网站公司电话站长网站统计
  • 淘宝首页网站怎么做百度q3财报减亏170亿
  • 自己做的网站怎么备案色目人
  • 做彩票网站需要什么服务器二级域名查询入口
  • 整站模板收录好的网站
  • 自建的电子网站如何做推广百度排名点击
  • 网站建设添加视频品牌推广思路
  • 顺德建设行政主管部门网站国内最新新闻消息今天的
  • 广州网站建设海珠信科系列推广软文范例
  • 做网站怎么发展客户关键词优化方法
  • 济南精品建站外包公司价格南宁网站建设网站推广
  • 前端和ui学哪个更好高明搜索seo
  • 东莞网站建设公司百度seo怎么操作
  • 城市文明建设网站怎样创建自己的电商平台
  • 教育网站开发方案潍坊关键词优化软件
  • 做网站的软件是哪个枫树seo
  • 成品网站货源1688免费推荐关键词在线优化
  • 新疆生产建设兵团水利局网站企业网站设计制作