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

中企动力做网站行吗优化关键词排名

中企动力做网站行吗,优化关键词排名,域名网站做优化外链,vatage wordpress主题一、GateWay概述 Gateway是在spring生态系统之上构建的API网关服务,基于Spring5,SpringBoot2和Project Reactor等技术。Gateway旨在提供一种简单而有效的方式来对API进行路由,以及提供一些强大的过滤器功能,例如:熔断…

一、GateWay概述

  • Gateway是在spring生态系统之上构建的API网关服务,基于Spring5,SpringBoot2和Project Reactor等技术。Gateway旨在提供一种简单而有效的方式来对API进行路由,以及提供一些强大的过滤器功能,例如:熔断、限流、重试等
  • SpringCloud Gateway是SpringCloud的一个全新项目,基于Spring5.X+SpringBoot2.X和Project Reactor等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的API路由管理方式。
  • 为了提升网关的性能,SpringCloud Gatway是基于WebFlux框架实现的,而WebFlux框架底层则使用了高性能的Reactor模式通讯框架Netty。
  • SpringCloud Gateway的目标提供统一的路由方式且基于Filter链的方式提供了网关基本的功能,例如:安全、监控/指标、和限流。

二、三大核心组件

  • 使用gateway引入以下坐标
<!--网关-->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId>
</dependency><!--nacos服务发现依赖-->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency><!-- 负载均衡组件 -->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>

1、Route(路由)

路由是构建网关的基本模块,它由ID,目标URI,一系列的断言(匹配规则)和过滤器组成,如果断言为true则匹配该路由

2、 Predicate(断言)

参考的是java8的java.util.function.Predicate开发人员可以匹配HTTP请求中的所有内容(例如请求头或请求参数),如果请求与断言相匹配则进行路由

入门使用,新建Geteway模块, 引入坐标,配置yml文件

server:port: 网关的端口号   #  再访问服务就使用 网关的端口+url ,而不使用之前的服务的端口
spring:application:name: spzx-cloud-gateway # 启动后Nacos注册中心服务会显示这个名字cloud:nacos:discovery:server-addr: 你nacos服务器的ip:端口  gateway:discovery:locator:enabled: true  #网关和注册中心整合# 配置route ,   id, target , predicateroutes:- id: spring-cloud-user     # 随意见名知意,唯一uri: lb://spzx-cloud-user # nacos中注册中心,服务的id lb表示loadBalancer# 配置路由predicates:-  Path=/*/user/**  # user 前面一个深度,  user后面可以任意深度#  访问网关最先匹配的就是断言规则, 这里写path就是看看路径匹配不匹配#- #http://127.0.0.1:10100/api/user/selectByUserId/1

在这里插入图片描述

在这里插入图片描述

  • 直接访问服务
    在这里插入图片描述
  • 通过网管访问服务
    在这里插入图片描述
  • 就举这个一个例子,更多在🔗官网predicates

3、 Filter(过滤)

Spring框架中GatewayFilter的实例,使用过滤器,可以在请求被路由前或者之后对请求进行修改在gateway中要实现其他的功能:权限控制、流量监控、统一日志处理等。就需要使用到gateway中所提供的过滤器了。过滤器,可以对进入网关的请求和微服务返回的响应做处理:
pring gateway提供了31种不同的过滤器。、
官网地址:🔗直达链接

路由过滤器(内置, 单个)

举例

  • AddRequestHeader给当前请求添加一个请求头
	      routes:- id: spring-cloud-user     uri: lb://spzx-cloud-user predicates:-  Path=/*/user/** filters:#添加过滤器, - AddRequestHeader= key,abcdefg# 增加一个请求头,和值

在这里插入图片描述

默认过滤器(内置,全局)

  • 关键字 default-filters
 routes:- id: spring-cloud-user     uri: lb://spzx-cloud-user predicates:-  Path=/*/user/** filters:- AddRequestHeader= key,abcdefg # 和routes平级default-filters: # 使用方法一样,  全局生效- AddRequestHeader= key,chen
  • 全局和局部都配置了, 并不会产生覆盖, 而是都要
    在这里插入图片描述

全局过滤器GlobalFilter(用户自定义,全局)

  • 概述
    上述的过滤器是gateway中提供的默认的过滤器,每一个过滤器的功能都是固定的。但是如果我们希望拦截请求,做自己的业务逻辑,默认的过滤器就没办法实现。此时就需求使用全局过滤器,全局过滤器的作用也是处理一切进入网关的请求和微服务响应,与GatewayFilter的作用一样。区别在于GatewayFilter通过配置定义,处理逻辑是固定的;而GlobalFilter的逻辑需要自己写代码实现。

  • 案例:定义全局过滤器,拦截请求,判断请求的参数是否满足下面条件:
    请求参数中是否有username,如果同时满足则放行,否则拦截

  • 步骤分析:
    1、定义一个类实现GlobalFilter接口
    2、重写filter方法
    3、将该类纳入到spring容器中
    4、实现Ordered接口定义该过滤器的顺序

@Component
public class AuthorizationFilter implements GlobalFilter, Ordered {@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {ServerHttpRequest request = exchange.getRequest();String username = request.getQueryParams().getFirst("username");//request.getQueryParams() 返回当前请求的查询参数(Query Parameters),// 它是一个 MultiValueMap<String, String>,表示多个键值对,允许某个键有多个值。//.getFirst("username") 表示从查询参数中获取第一个名为 “username” 的参数的值。// getFirst 方法返回该参数的第一个值(如果存在),如果查询参数中没有该字段,则返回 null。System.out.println(username);if(StringUtils.isEmpty(username)){ServerHttpResponse response = exchange.getResponse();response.setStatusCode(HttpStatus.UNAUTHORIZED);  //HttpStatus 是Spring提供的  UNAUTHORIZED 401return response.setComplete();//	setComplete() 返回一个 Mono<Void> 对象(Mono 是一种表示异步操作的类型),//	它表示一个完成的异步操作。}//放行return chain.filter(exchange);}/***  设置过滤器的优先级* @return*/@Overridepublic int getOrder() {return 1;}
}

1.6.6 过滤器执行顺序

请求进入网关会碰到三类过滤器:当前路由的过滤器、DefaultFilter、GlobalFilter

请求路由后,会将当前路由过滤器和DefaultFilter、GlobalFilter,合并到一个过滤器链(集合)中,排序后依次执行每个过滤器:
在这里插入图片描述

排序的规则

1、按照order的值进行排序,order的值越小,优先级越高,执行顺序越靠前。

2、路由过滤器和默认过滤器会按照order的值进行排序,这个值由spring进行指定,默认是按照声明顺序从1递增

3、当过滤器的order值一样时,会按照 globalFilter > defaultFilter > 路由过滤器的顺序执行

在这里插入图片描述

http://www.dtcms.com/wzjs/345642.html

相关文章:

  • wordpress menu_walkerseo关键词找29火星软件
  • 网站建设的步骤过程视频网络推广发展
  • 做网站最好的工具怎么去推广自己的平台
  • 网站建设和制作怎么赚钱学新媒体运营最好的培训学校
  • seo优化网站建设seo网站推广收费
  • 为什么检测行业不能用网站做公众号推广费用一般多少
  • 网站建设龙采我要软文网
  • 成都企业建站系统模板网站关键词优化工具
  • 网站 点击率推广业务
  • 做经营性的网站需要注册什么条件网站创建流程
  • 网站运营经理岗位要求百度系app有哪些
  • html首页设计模板关闭站长工具seo综合查询
  • 如果做网站需要多少钱百度经验手机版
  • 河南省建设工程造价协会网站做网站哪家公司比较好而且不贵
  • wordpress 爱武汉seo报价
  • mt7620a做网站怎么自己建立网站
  • 怎么打开自己做的网站长沙网站定制
  • 菜鸟做网站单页网站模板
  • 注册网站怎么注销经典软文文案
  • 做旅游网站的首页的图片seo短视频网页入口引流下载
  • 外贸业务员面试常见问题慧达seo免登录发布
  • 视频网站直播怎么做的搜索大全引擎
  • 公司常用网站开发软件seo霸屏
  • 网站建站服务公司地址百度网盘搜索
  • html5 公司网站模板每日新闻摘抄10一15字
  • 简易做海报网站西安seo外包服务
  • 网站联系我们页面设计网店如何推广自己的产品
  • 企业网站营销常用的方法淘宝搜索关键词技巧
  • 网站建设总结ppt自动优化句子的软件
  • 中英文网站源码 免费有哪些实用的网络推广方法