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

刷leetcode对网站开发有用吗做网站后期为什么续费

刷leetcode对网站开发有用吗,做网站后期为什么续费,智慧团建登录官网,网站建设与设计摘要文章目录 概述阻塞式处理模型和非阻塞处理模型概念阻塞式处理模型 三大核心概念 工作流程使用POMYML启动类配置路由通过编码进行配置动态路由常用的Route Predicate自定义全局过滤器自定义filter 官网 https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1… 文章目录 概述阻塞式处理模型和非阻塞处理模型概念阻塞式处理模型 三大核心概念 工作流程使用POMYML启动类配置路由通过编码进行配置动态路由常用的Route Predicate自定义全局过滤器自定义filter 官网 https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/html/ 概述 Gateway是在Spring生态系统之上构建的API网关服务基于Spring 5Spring Boot 2和 Project Reactor等技术。Gateway旨在提供一种简单而有效的方式来对API进行路由以及提供一些强大的过滤器功能 例如熔断、限流、重试等 阻塞式处理模型和非阻塞处理模型概念 阻塞式处理模型 缺点 servlet是一个简单的网络IO模型当请求进入servlet container时servlet container就会为其绑定一个线程在并发不高的场景下这种模型是适用的。但是一旦高并发(比如抽风用jemeter压)线程数量就会上涨而线程资源代价是昂贵的上线文切换内存消耗大严重影响请求的处理时间。在一些简单业务场景下不希望为每个request分配一个线程只需要1个或几个线程就能应对极大并发的请求这种业务场景下servlet模型没有优势 在Servlet3.1之后有了异步非阻塞的支持。而WebFlux是一个典型非阻塞异步的框架它的核心是基于Reactor的相关API实现的。相对于传统的web框架来说它可以运行在诸如NettyUndertow及支持Servlet3.1的容器上。非阻塞式函数式编程Spring5必须让你使用java8 Spring WebFlux 是 Spring 5.0 引入的新的响应式框架区别于 Spring MVC它不需要依赖Servlet API它是完全异步非阻塞的并且基于 Reactor 来实现响应式流规范。 三大核心概念 Route(路由)Predicate(断言)Filter(过滤) 工作流程 核心路由转发执行过滤器链 客户端向 Spring Cloud Gateway 发出请求。然后在 Gateway Handler Mapping 中找到与请求相匹配的路由将其发送到 Gateway Web Handler。 Handler 再通过指定的过滤器链来将请求发送到我们实际的服务执行业务逻辑然后返回。 过滤器之间用虚线分开是因为过滤器可能会在发送代理请求之前“pre”或之后“post”执行业务逻辑。 Filter在“pre”类型的过滤器可以做参数校验、权限校验、流量监控、日志输出、协议转换等在“post”类型的过滤器中可以做响应内容、响应头的修改日志的输出流量监控等有着非常重要的作用。 使用 POM dependencies!--gateway--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-gateway/artifactId/dependency!--eureka-client--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-client/artifactId/dependency!-- 引入自己定义的api通用包可以使用Payment支付Entity --dependencygroupIdcom.atguigu.springcloud/groupIdartifactIdcloud-api-commons/artifactIdversion${project.version}/version/dependency!--一般基础配置类--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactIdscoperuntime/scopeoptionaltrue/optional/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency /dependencies!--不需要这两个-- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId /dependency dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId /dependencyYML server:port: 9527spring:application:name: cloud-gatewayeureka:instance:hostname: cloud-gateway-serviceclient: #服务提供者provider注册进eureka服务列表内service-url:register-with-eureka: truefetch-registry: truedefaultZone: http://eureka7001.com:7001/eureka启动类 SpringBootApplication EnableEurekaClient配置路由 server:port: 9527spring:application:name: cloud-gatewaycloud:gateway:discovery:locator:enabled: true #开启从注册中心动态创建路由的功能利用微服务名进行路由routes:- id: payment_routh #payment_route #路由的ID没有固定规则但要求唯一建议配合服务名uri: http://localhost:8001 #匹配后提供服务的路由地址predicates:- Path/payment/get/** # 断言路径相匹配的进行路由- id: payment_routh2 #payment_route #路由的ID没有固定规则但要求唯一建议配合服务名uri: http://localhost:8001 #匹配后提供服务的路由地址predicates:- Path/payment/lb/** # 断言路径相匹配的进行路由#- After2020-02-21T15:51:37.48508:00[Asia/Shanghai]#- Cookieusername,zzyy#- HeaderX-Request-Id, \d # 请求头要有X-Request-Id属性并且值为整数的正则表达式eureka:instance:hostname: cloud-gateway-serviceclient: #服务提供者provider注册进eureka服务列表内service-url:register-with-eureka: truefetch-registry: truedefaultZone: http://eureka7001.com:7001/eureka通过编码进行配置 Configuration public class GateWayConfig {Beanpublic RouteLocator customRouteLocator(RouteLocatorBuilder routeLocatorBuilder){RouteLocatorBuilder.Builder routes routeLocatorBuilder.routes();routes.route(path_route_atguigu,r - r.path(/guonei).uri(http://news.baidu.com/guonei)).build();return routes.build();} }动态路由 server:port: 9527spring:application:name: cloud-gatewaycloud:gateway:discovery:locator:enabled: true #开启从注册中心动态创建路由的功能利用微服务名进行路由routes:- id: payment_routh #payment_route #路由的ID没有固定规则但要求唯一建议配合服务名#uri: http://localhost:8001 #匹配后提供服务的路由地址uri: lb://cloud-payment-service #匹配后提供服务的路由地址predicates:- Path/payment/get/** # 断言路径相匹配的进行路由- id: payment_routh2 #payment_route #路由的ID没有固定规则但要求唯一建议配合服务名#uri: http://localhost:8001 #匹配后提供服务的路由地址uri: lb://cloud-payment-service #匹配后提供服务的路由地址predicates:- Path/payment/lb/** # 断言路径相匹配的进行路由#- After2020-02-21T15:51:37.48508:00[Asia/Shanghai]#- Cookieusername,zzyy#- HeaderX-Request-Id, \d # 请求头要有X-Request-Id属性并且值为整数的正则表达式eureka:instance:hostname: cloud-gateway-serviceclient: #服务提供者provider注册进eureka服务列表内service-url:register-with-eureka: truefetch-registry: truedefaultZone: http://eureka7001.com:7001/eureka常用的Route Predicate After Route Predicate import java.time.ZoneId; import java.time.ZonedDateTime; public class ZonedDateTimeDemo {public static void main(String[] args){ZonedDateTime zbj ZonedDateTime.now(); // 默认时区System.out.println(zbj); // ZonedDateTime zny ZonedDateTime.now(ZoneId.of(America/New_York)); // 用指定时区获取当前时间 // System.out.println(zny);} }Before Route PredicateBetween Route PredicateCookie Route Predicate Cookie Route Predicate需要两个参数一个是 Cookie name ,一个是正则表达式。 路由规则会通过获取对应的 Cookie name 值和正则表达式去匹配如果匹配上就会执行路由如果没有匹配上则不执行 测试 curl http://localhost:9527/payment/lb --cookie usernamexiaoliHeader Route Predicate 两个参数一个是属性名称和一个正则表达式这个属性值和正则表达式匹配则执行。Host Route Predicate Host Route Predicate 接收一组参数一组匹配的域名列表这个模板是一个 ant 分隔的模板用.号作为分隔符。 它通过参数中的主机地址作为匹配规则。Method Route Predicate Path Route Predicate Query Route Predicate 支持传入两个参数一个是属性名一个为属性值属性值可以是正则表达式。 自定义全局过滤器 import org.springframework.cloud.gateway.route.RouteLocator; import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; Configuration public class GateWayConfig {Beanpublic RouteLocator customRouteLocator(RouteLocatorBuilder routeLocatorBuilder){RouteLocatorBuilder.Builder routes routeLocatorBuilder.routes();routes.route(path_route_atguigu,r - r.path(/guonei).uri(http://news.baidu.com/guonei)).build();return routes.build();} }自定义filter 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.http.HttpStatus; import org.springframework.stereotype.Component; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono; import java.util.Date; Component Slf4j public class MyLogGateWayFilter implements GlobalFilter,Ordered {Overridepublic MonoVoid filter(ServerWebExchange exchange, GatewayFilterChain chain){log.info(***********come in MyLogGateWayFilter: new Date());String uname exchange.getRequest().getQueryParams().getFirst(uname);if(uname null){log.info(*******用户名为null非法用户o(╥﹏╥)o);exchange.getResponse().setStatusCode(HttpStatus.NOT_ACCEPTABLE);return exchange.getResponse().setComplete();}return chain.filter(exchange);}Overridepublic int getOrder(){return 0;} }
http://www.hkea.cn/news/14514286/

相关文章:

  • 深圳工信部网站岳阳找工作网站
  • 如何关闭网站合肥建站网站平台
  • 规范网站建设情况的报告wordpress主题更换字体教程 | hu
  • 如何通过ftp上传网站网站好玩代码和特效
  • 网站开发验证码功能黄骅市天气预报
  • 网站分享链接怎么做win安装wordpress
  • 台州工程建设信息网站多导航织梦网站模板下载
  • 网络营销的推广工具seo优化神器
  • 温州做网站最好的桂电做网站的毕设容易过嘛
  • 集宁网站建设SEO优化怎么做国际网站
  • 关于怎么做网站网站技术开发设计
  • 金华建设网站的公司北京画册设计公司
  • 中企做一个网站多少钱兰州做网站es5188
  • 珠海网站制作网络公司WordPress插件ckplayer
  • 个人网站设计文字内容模板做网站主页上主要放哪些内容
  • 建网站需要多少费用做网站 赚钱
  • 银川网站建设哪家好亚马逊跨境电商好做吗
  • 住房和城乡建设部官方网站已网站开发需要什么软件有哪些
  • 建设网站创业网站改版要重新备案吗
  • 华为做网站吗app网站搭建
  • 建设工程消防验收网站优秀企业网站模板
  • 自己切片做网站网站建设百度云资源
  • 寻找做网站的合作伙伴北京谷歌浏览器安卓版下载
  • 常州网络公司中环互联网网站建设seo 0xu
  • 外贸网站建设软件织梦网站手机版怎么做
  • 信誉好的赣州网站建设电商培训课程内容
  • 东莞网站托管网站带支付源码
  • 网站功能设计怎么写怎么做自适应的网站
  • 福州开发网站公司seo短期课程
  • 做网站用com还是cn好做网站都需要考虑哪些