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

网站建设实训报告册织梦做网站详细教程

网站建设实训报告册,织梦做网站详细教程,百度网站推广关键词怎么查,湖北住房与城乡建设厅网站目录 GatewayWebFlux网关基本配置过滤器与断言工厂全局过滤器跨域处理 CORS Gateway WebFlux gateway 基于 webflux 构建 WebFlux 是基于反应式流概念的响应式编程框架,用于构建异步非阻塞的 Web 应用程序。它支持响应式编程范式,并提供了一种响应式的方…

目录

    • Gateway
      • WebFlux
      • 网关基本配置
      • 过滤器与断言工厂
      • 全局过滤器
      • 跨域处理 CORS

Gateway


WebFlux

gateway 基于 webflux 构建

WebFlux 是基于反应式流概念的响应式编程框架,用于构建异步非阻塞的 Web 应用程序。它支持响应式编程范式,并提供了一种响应式的方式来处理 Web 请求。

与传统的 Servlet API 相比,WebFlux 采用了基于事件驱动的编程模型,不依赖于传统的线程池模型。它使用少量的线程来处理大量的请求,通过异步非阻塞的方式实现高吞吐量和低延迟。


WebFlux 提供了两种编程模型:

  1. 响应式 Web 客户端:用于发送 HTTP 请求并处理响应。它基于 Reactor 提供了一组操作符和方法,可以以声明式的方式组装和处理 HTTP 请求,支持异步和流式处理。
  2. 响应式 Web 服务器:提供了一个响应式的 Web 服务器,用于处理传入的 HTTP 请求并生成响应。它基于 Reactor 提供了一组用于处理请求和生成响应的 API,支持异步非阻塞的处理方式。可以使用注解或函数式编程的方式定义请求处理器,处理器可以返回一个单独的响应,也可以返回一个表示响应流的 Publisher 对象。

网关基本配置

Gateway 是一个在系统架构中充当入口点的服务器,它接收来自客户端的请求并将其转发到后端的服务。网关的作用是在客户端和后端服务之间建立一个中间层,用于路由请求等

新建 maven 项目 gateway

pom 添加 gateway 坐标以及负载均衡坐标

<!--gateway网关依赖-->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId>
</dependency><!--loadbalancer负载均衡,对于高版本springboot需要额外添加此以来-->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>

编写入口文件 GatewayApplication.java

@SpringBootApplication
public class GatewayApplication {public static void main(String[] args) {SpringApplication.run(GatewayApplication.class, args);}
}

进行网关配置

routes 用于设置转发路由,他是一个数组,表示你可以设置多个转发规则,但是各个转发规则的 id 不可以重复

server:port: 2333spring:application:name: gatewaycloud:nacos:server-addr: localhost:8848# 配置gatewaygateway:# 数组方式配置路由转发routes:# 转发id,名字随便取,但是不可以重复- id: user-service# 被转发的URI,格式:lb://<被转发的服务器名>uri: lb://userservice# 断言规则predicates:# 当请求路径是 /user/** 格式的,自动转发到指定服务器- Path=/user/**# 这是另一组被转发的服务器- id: order-serviceuri: lb://orderservicepredicates:- Path=/order/**

过滤器与断言工厂

predicates 断言配置属性可以使用以下 11 种

在这里插入图片描述


使用 filters 添加过滤器

下面为每个 user 请求都添加了一个名为“Truth”的请求头

gateway:routes:- id: user-serviceuri: lb://userservicepredicates:- Path=/user/**# 设置过滤器filters:# 添加请求头,格式:[请求头名称],[请求头内容]- AddRequestHeader=Truth,shit oh my gods!

如果你想一劳永逸的话,可以使用 defaultFilters 为全部路由设置请求头

gateway:routes:- id: user-serviceuri: lb://userservicepredicates:- Path=/user/**- id: order-serviceuri: lb://orderservicepredicates:- Path=/order/**# 默认所有路由都有此路由器default-filters:- AddRequestHeader=Truth,shit oh my gods!

全局过滤器

全局过滤器对所有路由转发同时生效

实现该过滤器需要两步:

  1. 实现 GlobalFilter
  2. 借助注解 @Order 设置过滤器优先级
// order设置-1表示最高优先级
@Order(-1)
@Component
public class AuthFilter implements GlobalFilter {@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {// 取出参数并对参数进行校验ServerHttpRequest request = exchange.getRequest();MultiValueMap<String, String> params = request.getQueryParams();String auth = params.getFirst("authorization");// 检查授权参数是否为 "admin"if ("admin".equals(auth)) {// 授权通过,继续传递请求到下一个过滤器或后端服务return chain.filter(exchange);}// 授权失败,设置响应状态为 401 未授权exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);// 设置响应为完成状态,结束请求-响应的处理return exchange.getResponse().setComplete();}
}

三大过滤器:路由过滤器、defaultFilter、GlobalFilter 执行优先级以及顺序

在这里插入图片描述


跨域处理 CORS

在这里插入图片描述


http://www.yayakq.cn/news/856206/

相关文章:

  • 什么是网络社交一点优化
  • 做设计用哪个素材网站好企业网站相关案例
  • 高端it网站建设做网站前必须设计原型吗
  • 广东省建设工程质量安全监督检测总站网站网络营销跟网站推广有啥区别
  • 建设网站的意义作用是什么意思江苏省建设集团有限公司
  • xampp本地搭建网站云南网站设计模板
  • 长春网站建设q479185700棒wordpress设置略缩图外链图片
  • 商业网站建设方案ps软件下载手机版
  • 筹划建设智慧海洋门户网站沈阳自助建站模板
  • 北京网站建设厂家关于外贸公司的网站
  • 网站建设优化重庆做网站的任务书
  • 南通优普网站建设外包合肥网站建设黄页
  • 网站开发与维护是什么网站开发简称
  • 网站怎么能快速备案网站反链数
  • 挂机宝可以做网站广州网站建设海珠新科
  • 自己做企业网站服务器广州建设局网站
  • 福清建设局网站怎么做网站统计
  • 网站建设案例新闻天津市建设监理协会网站
  • 南通网站建设制作公司wordpress页眉编辑
  • 网站设计定制环保网站建设公司哪家好
  • 百色做网站工程信息价查询
  • iis装网站郑州市网站
  • 做网站推广的销售电话开场白沧州 中企动力提供网站建设
  • 如何快速备案网站最新国家大事新闻
  • 建设网站投资多少wordpress怎么修改数据库密码
  • 比较有名的设计网站注册一家公司
  • 自己录入数据做问卷的网站网站建设流程是什么意思
  • 深圳开发网站建设设计网站推广的广告语
  • 网站首页收录突然没有了网站制作对公司的作用
  • 网站访问加速器揭阳网站制作工具