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

西安网站建设哪家好一些WordPress万级数据优化

西安网站建设哪家好一些,WordPress万级数据优化,网上哪里有辅导高考生做难题的网站,网页设计制作教程dw一、Spring Cloud Gateway内置GatewayFilter 路由过滤器允许以某种方式修改传入的 HTTP 请求或传出的 HTTP 响应。路由过滤器的范围是特定路由。Spring Cloud Gateway 包括许多内置的 GatewayFilter 工厂。 官网地址#xff1a;https://docs.spring.io/spring-cloud-gateway…一、Spring Cloud Gateway内置GatewayFilter 路由过滤器允许以某种方式修改传入的 HTTP 请求或传出的 HTTP 响应。路由过滤器的范围是特定路由。Spring Cloud Gateway 包括许多内置的 GatewayFilter 工厂。 官网地址https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#gatewayfilter-factories 过滤器工厂作用参数AddRequestHeader为原始请求添加HeaderHeader的名称及值AddRequestParameter为原始请求添加请求参数参数名称及值AddResponseHeader为原始响应添加HeaderHeader的名称及值DedupeResponseHeader剔除响应头中重复的值需要去重的Header名称及去重策略Hystrix为路由引入Hystrix的断路器保护HystrixCommand的名称FallbackHeaders为fallbackUri的请求头中添加具体的异常信息Header的名称PrefixPath为原始请求路径添加前缀前缀路径PreserveHostHeader为请求添加一个preserveHostHeadertrue 的属性路由过滤器会检查该属性以决定是否要发送原始的Host无RequestRateLimiter用于对请求限流限流算法为令牌桶keyResolver、rateLimiter、statusCode、denyEmptyKey、emptyKeyStatusRedirectTo将原始请求重定向到指定的URLhttp状态码及重定向的urlRemoveHopByHopHeadersFilter为原始请求删除IETF组织规定的一系列Header默认就会启用可以通过配置指定仅删除哪些HeaderRemoveRequestHeader为原始请求删除某个HeaderHeader名称RemoveResponseHeader为原始响应删除某个HeaderHeader名称RewritePath重写原始的请求路径原始路径正则表达式以及重写后路径的正则表达式RewriteResponseHeader重写原始响应中的某个HeaderHeader名称、值的正则表达式重写后的值SaveSession在转发请求之前强制执行WebSession::save操作无secureHeaders为原始响应添加一系列起安全作用的响应头无支持修改这些安全响应头的值SetPath修改原始的请求路径修改后的路径SetResponseHeader修改原始响应中某个Header的值Header名称修改后的值SetStatus修改原始响应的状态码HTTP 状态码可以是数字也可以是字符串StripPrefix用于截断原始请求的路径使用数字表示要截断的路径的数量Retry针对不同的响应进行重试retries、statuses、methods、seriesRequestSize设置允许接收最大请求包的大 小。如果请求包大小超过设置的值则返回 413 Payload Too Large请求包大小单位为字节默认值为5MModifyRequestBody在转发请求之前修改原始请求体内容修改后的请求体内容ModifyResponseBody修改原始响应体的内容修改后的响应体内容 二、DefaultFilter 添加DefaultFilter将其应用于所有路由您可以使用spring.cloud.gateway.default-filters此属性配置采用DefaultFilter列表。 spring:cloud:gateway:default-filters:- AddResponseHeaderX-Response-Default-Red, Default-Blue- StripPrefix1三、GlobalFilter GlobalFilter接口与GatewayFilter接口具有相同特征。GlobalFilter是有条件地应用于所有路由的特殊过滤器。 Spring Cloud Gateway 内置的GatewayFilter 更多介绍请见官网https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#global-filters 以下为自定义GlobalFilter实现记录请求方状态及耗时 ApiLoggingFilter.java import lombok.extern.slf4j.Slf4j; import org.springframework.cloud.gateway.filter.GatewayFilterChain; import org.springframework.cloud.gateway.filter.GlobalFilter; import org.springframework.core.Ordered; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono; import java.util.List;Slf4j public class ApiLoggingFilter implements GlobalFilter, Ordered {private static final String START_TIME startTime;private static final String X_REAL_IP X-Real-IP;// nginx需要配置Overridepublic MonoVoid filter(ServerWebExchange exchange, GatewayFilterChain chain) {if (log.isDebugEnabled()) {String info String.format(Method:{%s} Host:{%s} Path:{%s} Query:{%s},exchange.getRequest().getMethod().name(), exchange.getRequest().getURI().getHost(),exchange.getRequest().getURI().getPath(), exchange.getRequest().getQueryParams());log.debug(info);}exchange.getAttributes().put(START_TIME, System.currentTimeMillis());return chain.filter(exchange).then(Mono.fromRunnable(() - {Long startTime exchange.getAttribute(START_TIME);if (startTime ! null) {Long executeTime (System.currentTimeMillis() - startTime);ListString ips exchange.getRequest().getHeaders().get(X_REAL_IP);String ip ips ! null ? ips.get(0) : exchange.getRequest().getRemoteAddress().getAddress().getHostAddress();String api exchange.getRequest().getURI().getRawPath();int code 500;if (exchange.getResponse().getStatusCode() ! null) {code exchange.getResponse().getStatusCode().value();}// 当前仅记录日志后续可以添加日志队列来过滤请求慢的接口if (log.isDebugEnabled()) {log.debug(来自IP地址{}的请求接口{}响应状态码{}请求耗时{}ms, ip, api, code, executeTime);}}}));}Overridepublic int getOrder() {return Ordered.LOWEST_PRECEDENCE;}}配置使用ApiLoggingFilter GatewayConfiguration.java Configuration(proxyBeanMethods false) public class GatewayConfiguration {Beanpublic ApiLoggingFilter apiLoggingFilter() {return new ApiLoggingFilter();} }四、过滤器的执行顺序 请求进入网关会碰到三类过滤器当前路由的过滤器、DefaultFilter、GlobalFilter。 请求路由后,会将 当前路由过滤器和DefaultFilter、GlobalFilter合并到一个过滤器链集合中按org.springframework.core.Ordered接口排序排序后依次执行每个过滤器 排序的规则是什么呢 每一个过滤器都必须指定一个int类型的order值order值越小优先级越高执行顺序越靠前。GlobalFilter通过实现Ordered接口或者添加Order注解来指定order值由我们自己指定。路由过滤器和defaultFilter的order由Spring指定默认是按照声明顺序从1递增。当过滤器的order值一样时会按照 defaultFilter 路由过滤器 GlobalFilter的顺序执行。传入的 HTTP 请求的第一个过滤器具有最高优先级。传出的 HTTP 响应的最后一个过滤器具有最高优先级。 详细内容可以查看源码 org.springframework.cloud.gateway.route.RouteDefinitionRouteLocator#getFilters()方法是先加载defaultFilters然后再加载某个route的filters然后合并。 private ListGatewayFilter getFilters(RouteDefinition routeDefinition) {ListGatewayFilter filters new ArrayList();if (!this.gatewayProperties.getDefaultFilters().isEmpty()) {filters.addAll(this.loadGatewayFilters(routeDefinition.getId(), new ArrayList(this.gatewayProperties.getDefaultFilters())));}if (!routeDefinition.getFilters().isEmpty()) {filters.addAll(this.loadGatewayFilters(routeDefinition.getId(), new ArrayList(routeDefinition.getFilters())));}AnnotationAwareOrderComparator.sort(filters);return filters; }org.springframework.cloud.gateway.handler.FilteringWebHandler#handle()方法会加载全局过滤器与前面的过滤器合并后根据order排序组织过滤器链。 public MonoVoid handle(ServerWebExchange exchange) {Route route (Route)exchange.getRequiredAttribute(ServerWebExchangeUtils.GATEWAY_ROUTE_ATTR);ListGatewayFilter gatewayFilters route.getFilters();ListGatewayFilter combined new ArrayList(this.globalFilters);combined.addAll(gatewayFilters);AnnotationAwareOrderComparator.sort(combined);if (logger.isDebugEnabled()) {logger.debug(Sorted gatewayFilterFactories: combined);}return (new DefaultGatewayFilterChain(combined)).filter(exchange); }
http://www.yayakq.cn/news/1606/

相关文章:

  • 励志做的很好的网站市场营销策划案的范文
  • 沈阳的网站制作公司哪家好搜索引擎广告投放
  • 网站做app开发wordpress视频教程式
  • 网站备案号链接做盈利网站怎么备案
  • 深圳做营销网站的公司小米路由wordpress
  • 网站公司建设网站建设规划书电商
  • 做自己的网站不是免费的镇海区建设交通局网站进不去了
  • 做特卖网站有什么网站asp网站转wap网站
  • 网站制作公司咨询网站制作公司沈阳网站建设培训班
  • 网站维护包含哪些内容月夜直播免费完整版观看
  • 高端网站建设成都中秋节网页设计代码
  • 开一个网站多少钱屯济宁做网站公司
  • 有没有教做衣服的网站做网站看网页效果
  • 如何建设教育信息网站怎样做美瞳网站
  • 网站下载工具没有域名能做网站吗
  • 哪个网站可以做线上翻译赚钱微信代运营是什么意思
  • 做网站策划书吧云谷 网站建设
  • 江西建设职业技术学院迎新网站中文域名注册 .网站
  • 澄迈住房和城乡建设局网站手机版网页制作
  • 网店网站建设哪家北京撒网站设计
  • html5 素材网站编程猫官网
  • 郑州企业网站怎么优化网文网站开发方案
  • seo网站关键词快速排名免费网站建设可信吗
  • 主网站下建立子目录站鞍山网站制作云端
  • 怎么在国外网站买东西石油 技术支持 东莞网站建设
  • 东莞前10大互联网公司襄阳抖音seo找哪家
  • 公司网站上传图库公司集团网站开发
  • 怎么黑网站中国网财经
  • 学做网站难吗eclipse开发微网站开发
  • 做自媒体查找素材的网站技术网站源码wordpress