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

宁波专业的网站建设团队广告网站制作报价

宁波专业的网站建设团队,广告网站制作报价,福州网站建设信息,网络认证Spring Cloud Gateway 笔记 简介 Spring Cloud Gateway 是基于 Spring 5、Spring Boot 2 和 Project Reactor 的 API 网关,提供动态路由、安全、监控和弹性等功能。 核心特性:异步非阻塞模型、高性能、支持动态配置、丰富的断言(Predicate&…

Spring Cloud Gateway 笔记

简介

Spring Cloud Gateway 是基于 Spring 5、Spring Boot 2 和 Project Reactor 的 API 网关,提供动态路由、安全、监控和弹性等功能。
核心特性:异步非阻塞模型、高性能、支持动态配置、丰富的断言(Predicate)和过滤器(Filter)。

官网:https://spring.io/projects/spring-cloud-gateway

与其他网关对比

产品特点
Zuul 1.x基于 Servlet 2.5,阻塞式 I/O,性能较低,社区已逐步淘汰
Zuul 2.x支持非阻塞,但生态不完善
Kong基于 Nginx + OpenResty,适合复杂场景,但依赖数据库,配置复杂
Spring Cloud Gateway轻量级、无缝集成 Spring 生态,性能优异,适合微服务场景

1 基础入门

1.1 功能

image.png

  • 动态路由:根据请求路径、Header 等条件路由到不同服务。
  • 请求过滤:修改请求/响应内容(如添加 Header、限流)。
  • 负载均衡:集成 Ribbon 实现服务负载均衡。

1.2 HelloWorld

/api/order/**路由给订单

/api/product/**路由给商品

测试负载均衡

1.2.1 创建项目
    • 引入 spring-cloud-starter-gateway
    • 引入spring-cloud-starter-alibaba-nacos-discovery
    <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId>
    </dependency>
    <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    
1.2.2 改造微服务

确保目标微服务已注册到注册中心(如 Nacos/Eureka),并暴露接口(如 /api/user/{id})。

  • 为 service-order、service-prduct 添加 /api基础路径
1.2.3 配置网关

application.yml 中配置路由规则:

spring:cloud:gateway:routes:- id: orderuri: lb://service-order  # lb表示负载均衡predicates:- Path=/api/order/**   # 路径匹配- id: producturi: lb://service-productpredicates:- Path=/api/product/**filters:- StripPrefix=1      # 去掉路径前缀(/api/user -> /user)           

1.3 原理

image.png

  • 核心组件Route(路由规则)、Predicate(匹配条件)、Filter(处理逻辑)。
  • 执行流程:客户端请求 → 匹配 Predicate → 执行 Filter 链 → 转发到目标服务。

2 Predicate - 断言

spring:cloud:gateway:routes:- id: after_routeuri: https://example.orgpredicates:- After=2017-01-20T17:42:47.789-07:00[America/Denver]

断言用于定义请求匹配条件,常用类型:

断言类型示例配置说明
Path- Path=/order/**路径匹配
Method- Method=GET,POSTHTTP 方法匹配
Header- Header=X-Request-Id, \\d+请求头正则匹配
Query- Query=name, zhangsan请求参数匹配

3 Filter - 过滤器

过滤器用于修改请求/响应,分为 GatewayFilter(单路由)和 GlobalFilter(全局)。

常用内置过滤器

filters:- AddRequestHeader=X-Request-Color, blue  # 添加请求头- RewritePath=/api/(?<segment>.*), /$\{segment}  # 重写路径- Retry=3  # 失败重试3次

4 CORS - 跨域处理

application.yml 中全局配置跨域:

spring:cloud:gateway:globalcors:cors-configurations:'[/**]':allowedOrigins: "https://docs.spring.io"allowedMethods:- GET

局部跨域::

spring:cloud:gateway:routes:- id: cors_routeuri: https://example.orgpredicates:- Path=/service/**metadata:cors:allowedOrigins: '*'allowedMethods:- GET- POSTallowedHeaders: '*'maxAge: 30

5 GlobalFilter

自定义全局过滤器:

@Bean
public GlobalFilter customFilter() {return new CustomGlobalFilter();
}public class CustomGlobalFilter implements GlobalFilter, Ordered {@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {log.info("custom global filter");return chain.filter(exchange);}@Overridepublic int getOrder() {return -1;}
}

总结

核心要点

  1. 路由配置:通过 Predicate 定义匹配条件,Filter 定义处理逻辑。
  2. 断言类型:掌握 PathHeaderQuery 等常用断言。
  3. 过滤器:内置过滤器快速实现功能,GlobalFilter 自定义全局逻辑。
  4. 跨域配置:通过 YAML 或代码全局解决跨域问题。
  5. 性能优势:基于 WebFlux 的异步非阻塞模型,适合高并发场景。

代码复用技巧

  • 将通用路由配置抽象为 yml 片段,方便多环境复用。
  • 自定义 GlobalFilter 封装日志等公共逻辑。

文章转载自:

http://OhD2OzzL.mLhcb.cn
http://edIvOAaF.mLhcb.cn
http://SFoXfMmo.mLhcb.cn
http://VMIJbIJO.mLhcb.cn
http://TBt426dS.mLhcb.cn
http://x2n3BSaK.mLhcb.cn
http://7Zkz4lNZ.mLhcb.cn
http://twH9LLOA.mLhcb.cn
http://rMN65ZyM.mLhcb.cn
http://hqx4kwpv.mLhcb.cn
http://NHQ2v6oT.mLhcb.cn
http://cC3AIrk4.mLhcb.cn
http://fY82LNLl.mLhcb.cn
http://kE2j2tnf.mLhcb.cn
http://UbblEG7P.mLhcb.cn
http://qouHkAAv.mLhcb.cn
http://VdT9RJCe.mLhcb.cn
http://2imfiA3U.mLhcb.cn
http://0QSRldgh.mLhcb.cn
http://ss7TQ6JV.mLhcb.cn
http://QvuercBY.mLhcb.cn
http://oF3DKEr4.mLhcb.cn
http://hCqfqgEP.mLhcb.cn
http://6i6MhpxM.mLhcb.cn
http://zsu6QhTI.mLhcb.cn
http://kFpW9Dn2.mLhcb.cn
http://EKWUHZWY.mLhcb.cn
http://8JJotGHw.mLhcb.cn
http://HDimJhHK.mLhcb.cn
http://F218K0i7.mLhcb.cn
http://www.dtcms.com/wzjs/692464.html

相关文章:

  • 河南省南阳市建设局网站wordpress是框架吗
  • 设计投稿的网站有什么wordpress树状文章
  • 搜狗新闻源网站怎么做手机网站搜索框代码
  • 微网站模板标签做竞价网站服务器多少钱
  • 贷款网站怎么做的建设项目环境登记表辽宁省网站
  • 龙岗爱联有学网站建设安全的网站制作公司
  • 邯郸做移动网站费用怎么注册公司的邮箱
  • 商业网站建设平台南京网站排名
  • 定制网站开发流程邯郸企业做网站方案
  • 青海营销网站建设多少钱中国建设银行官网站纪念币预约
  • 网站建设珠江摩尔搜索引擎推广有哪些平台
  • 网站采编队伍建设旅游景区网站开发的政策可行性
  • 群晖可以做网站服务器关键词搜索点击软件
  • 专业建设网站企业建筑工程网课代字幕
  • 未来的网站建设想法策划公司创业计划书
  • 长沙智能建站方案photoshop做网站
  • 网站使用费用品牌推广策略有哪些
  • 厦门做网站xm37网站建设图书馆管理系统
  • 房地产网站策划书app定制开发公司选择
  • 桓台新城建设有限公司网站网站没收录要怎么做
  • 联合会网站建设中学院新校区建设专题网站
  • 网站正在建设中 模板网站首页命名
  • 中网自助建站爱做片视频网站
  • 网站备案 更换接入商阿里邮箱和WordPress
  • 太原制作网站的公司哪家好怎么做个人网站建设
  • 中山站群网站建设中文网站建设技术解决方案
  • 男男做受网站wap网页制作
  • 阿里巴巴自助建站的一般流程网站被k后是怎样的
  • 对外网站建设情况汇报台州市城市建设规划局网站
  • wordpress改成自己网站sns网站是什么