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

温州专业营销网站如何找到网站管理员

温州专业营销网站,如何找到网站管理员,最快新闻资讯在哪看,找论文的免费网站文章目录 前言一、搭建网关服务1、导入依赖2、在application.yml中写配置 二、路由断言工厂Route Predicate Factory三、路由过滤器 GatewayFilter案例1给所有进入userservice的请求添加一个请求头总结 四、全局过滤器 GlobalFilter定义全局过滤器#xff0c;拦截并判断用户身… 文章目录 前言一、搭建网关服务1、导入依赖2、在application.yml中写配置 二、路由断言工厂Route Predicate Factory三、路由过滤器 GatewayFilter案例1给所有进入userservice的请求添加一个请求头总结 四、全局过滤器 GlobalFilter定义全局过滤器拦截并判断用户身份步骤1自定义过滤器 总结 五、过滤器执行顺序总结 六、跨域问题处理总结 总结 前言 网关功能对整个微服务起保护作用 身份认证和权限校验服务路由、负载均衡请求限流 在SpringCloud中网关的实现包括两种 gatewayzuul 两种的性能对比 Zuul是基于Servlet的实现属于阻塞式编程。而SpringCloudGateway则是基于Spring5中提供的WebFlux属于响应式编程的实现具备更好的性能。 一、搭建网关服务 1、导入依赖 dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-gateway/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-loadbalancer/artifactId/dependency!--nacos服务发现依赖--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependency2、在application.yml中写配置 server:port: 10010 spring:application:name: gatewaycloud:nacos:server-addr: localhost:8848 #nacos地址gateway:routes:- id: user-service #路由标示必须唯一# uri: http://127.0.0.1:8081 # 路由的目标地址 http就是固定地址【路由地址配置的第一种模式】uri: lb://userservice #路由的目标地址【路由地址配置的第二种模式】【lb:loadBalance】predicates: #路由断言布尔表达式判断请求是否符合规则- Path/user/** #路径断言判断路径是否是以/user开头如果是则符合- id: order-serviceuri: lb://orderservicepredicates:- Path/order/**配置包括 路由id路由的唯一标示路由目标uri路由的目标地址http代表固定地址lb代表根据服务名负载均衡路由断言predicates判断路由的规则判断请求是否符合要求符合则转发到路由目的地路由过滤器filters对请求或响应做处理 二、路由断言工厂Route Predicate Factory 我们在配置文件中写的断言规则只是字符串这些字符串会被Predicate Factory读取并处理转变为路由判断的条件例如Path/user/**是按照路径匹配这个规则是由org.springframework.cloud.gateway.handler.predicate.PathRoutePredicateFactory类来处理的像这样的断言工厂在SpringCloudGateway还有十几个 Spring提供了11种基本的Predicate工厂 官网断言工厂的地址https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#gateway-request-predicates-factories 三、路由过滤器 GatewayFilter GatewayFilter是网关中提供的一种过滤器可以对进入网关的请求和微服务返回的响应做处理 Spring提供了38种不同的路由过滤器工厂。例如 官网地址https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#gatewayfilter-factories 案例1给所有进入userservice的请求添加一个请求头 给所有进入userservice的请求添加一个请求头Truthitcast is freaking awesome! 实现方式在gateway中修改application.yml文件给userservice的路由添加过滤器 spring: cloud: gateway:routes: # 网关路由配置 - id: user-service uri: lb://userservice predicates: - Path/user/** filters: # 过滤器 - AddRequestHeaderTruth, Itcast is freaking awesome! # 添加请求头如果要对所有的路由都生效则可以将过滤器工厂写到default下。格式如下 server:port: 10010 logging:level:cn.itcast: debugpattern:dateformat: MM-dd HH:mm:ss:SSS spring:application:name: gatewaycloud:nacos:server-addr: localhost:8848 # nacos地址discovery: # namespace: 48f42a9a-ed33-4b61-a2b1-dfa248a7e6a7 #dev环境gateway:routes: # 网关路由配置- id: user-service # 路由标示必须唯一uri: lb://userservice # 路由的目标地址predicates: # 路由断言判断请求是否符合规则- Path/user/** # 路径断言判断路径是否是以/user开头如果是则符合- id: order-serviceuri: lb://orderservicepredicates:- Path/order/**default-filters:- AddRequestHeaderTruth,Itcast is freaking awesome!总结 四、全局过滤器 GlobalFilter 全局过滤器的作用也是处理一切进入网关的请求和微服务响应与GatewayFilter的作用一样。 区别在于GatewayFilter通过配置定义处理逻辑是固定的。而GlobalFilter的逻辑需要自己写代码实现。 定义方式是实现GlobalFilter接口。 public interface GlobalFilter { /** * 处理当前请求有必要的话通过{link GatewayFilterChain}将请求交给下一个过滤器处理** param exchange 请求上下文里面可以获取Request、Response等信息 * param chain 用来把请求委托给下一个过滤器 * return {code MonoVoid} 返回标示当前过滤器业务结束 */ MonoVoid filter(ServerWebExchange exchange, GatewayFilterChain chain);}定义全局过滤器拦截并判断用户身份 需求定义全局过滤器拦截请求判断请求的参数是否满足下面条件 参数中是否有authorizationauthorization参数值是否为admin 如果同时满足则放行否则拦截 步骤1自定义过滤器 自定义类实现GlobalFilter接口添加Order注解 Order(-1) Component public class AuthorizeFilter implements GlobalFilter { Override public MonoVoid filter(ServerWebExchange exchange, GatewayFilterChain chain) { // 1.获取请求参数 MultiValueMapString, String params exchange.getRequest().getQueryParams(); // 2.获取authorization参数 String auth params.getFirst(authorization); // 3.校验 if (admin.equals(auth)) { // 放行 return chain.filter(exchange); } // 4.拦截 // 4.1.禁止访问 exchange.getResponse().setStatusCode(HttpStatus.FORBIDDEN); // 4.2.结束处理 return exchange.getResponse().setComplete(); } }总结 五、过滤器执行顺序 请求进入网关会碰到三类过滤器当前路由的过滤器、DefaultFilter、GlobalFilter 请求路由后会将当前路由过滤器和DefaultFilter、GlobalFilter合并到一个过滤器链集合中排序后依次执行每个过滤器 每一个过滤器都必须指定一个int类型的order值order值越小优先级越高执行顺序越靠前。GlobalFilter通过实现Ordered接口或者添加Order注解来指定order值由我们自己指定路由过滤器和defaultFilter的order由Spring指定默认是按照声明顺序从1递增。当过滤器的order值一样时会按照 defaultFilter 路由过滤器 GlobalFilter的顺序执行。 可以参考下面几个类的源码来查看 org.springframework.cloud.gateway.route.RouteDefinitionRouteLocator#getFilters()方法是先加载defaultFilters然后再加载某个route的filters然后合并。 org.springframework.cloud.gateway.handler.FilteringWebHandler#handle()方法会加载全局过滤器与前面的过滤器合并后根据order排序组织过滤器链 总结 六、跨域问题处理 跨域域名不一致就是跨域主要包括 域名不同 www.taobao.com 和 www.taobao.org 和 www.jd.com 和 miaosha.jd.com域名相同端口不同localhost:8080和localhost8081 跨域问题浏览器禁止请求的发起者与服务端发生跨域ajax请求请求被浏览器拦截的问题 解决方案CORS 网关处理跨域采用的同样是CORS方案并且只需要简单配置即可实现 spring: cloud: gateway: # 。。。 globalcors: # 全局的跨域处理 add-to-simple-url-handler-mapping: true # 解决options请求被拦截问题 corsConfigurations: [/**]: allowedOrigins: # 允许哪些网站的跨域请求 - http://localhost:8090 - http://www.leyou.com allowedMethods: # 允许的跨域ajax的请求方式 - GET - POST - DELETE - PUT - OPTIONS allowedHeaders: * # 允许在请求中携带的头信息 allowCredentials: true # 是否允许携带cookie maxAge: 360000 # 这次跨域检测的有效期总结 总结 以上就是SpringCloud之Gateway统一网关的相关知识希望对你有所帮助。 积跬步以至千里积怠惰以至深渊。时代在这跟着你一起努力哦
http://www.pierceye.com/news/55051/

相关文章:

  • 淘宝客网站域名谁会做访问自己做的网站
  • 网站搭建服务平台莲都网站建设
  • 组装电脑报价网站源码做公司的网站付的钱怎么入账
  • 如何选择电商网站建设做自动发卡密网站的教程
  • 网站建设都用那些软件wordpress 亚马逊评论
  • .netcms网站管理系统微信手机网页登录入口
  • 如何让网站上线网站轮播效果怎么做
  • 网站源码模板下载中石油七建设公司官网
  • 天津哪里做网站最好网页微信版登录
  • 替别人做网站管理员怎么做seo网站推广
  • 商城网站建设都需要多少钱济南工装定制公司
  • 住房和城乡建设网站 上海图片生成链接的网站
  • 郑州快速建站价格猎聘网招聘官网app
  • 网站栏目标签如何调用电子商务网站开发实战视频
  • 在网站上投放广告世界杯哪个网站做代理
  • 商务网站建设过程中应对可能遇到的风险引流推广的句子
  • 金华企业网站推广推广普通话在哪一年
  • seo网站关键词排名提升100元网站建设
  • 帮做试卷的网站做网站读什么专业
  • 江苏网站制作洞头区网站建设收费
  • 江西建设银行招聘网站建设企业网站企业网上银行官网官方
  • 电话销售做网站打官司崇左北京网站建设
  • 建专业外贸网站网站建设销售实习报告
  • c网站开发案例详解有没有可以看的网址
  • 服务好的南昌网站制作如何设计一个网络
  • 比较好的网站开发团队什么叫前端什么叫后端
  • 怎么建个人网页广州网站建设优化公司
  • 团队网站模板视频点播网站开发
  • 优质的网站建设wordpress编辑器怎么变
  • 龙岩网站建设要多少费用企业网关路由器怎么设置