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

Gateway 搭建

1.创建 moudle 命名为 gateway

2,pom中引入依赖 网关依赖;注册中心依赖等

<!--        网关依赖--><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-starter-loadbalancer</artifactId></dependency>

创建启动类

配置yml文件

spring:application:name: gatewaycloud:nacos:discovery:server-addr: 127.0.0.1:8848
server:port: 80

测试 启动成功

配置请求分发路径

spring:application:name: gatewaycloud:nacos:discovery:server-addr: 127.0.0.1:8848gateway:routes:- id: order-route  # 路由名称uri: lb://order  # 路由要转发的服务 格式为固定的  lb:// 服务名predicates: # 断言- Path=/api/order/**  # 路径为 /api/order/** 的请求专项order服务- id: product-routeuri: lb://productpredicates:- Path=/api/product/**

网关路径重写示例:

例如:请求的全路径为 /api/order/getOrder经过网关后 将请求地址省略为 /getOrder 

filters:- RewritePath=/red/?(?<segment>.*),/$\{segment}

自定义网关全局过滤器

package gateway.filter;import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.Ordered;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.http.server.reactive.ServerHttpResponse;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;//自定义全局过滤器
@Component
public class RtGlobalFiler implements GlobalFilter, Ordered {@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {ServerHttpRequest request = exchange.getRequest();ServerHttpResponse response = exchange.getResponse();String string = request.getURI().toString();System.out.println("当前操作时间"+System.currentTimeMillis()+"操做的地址:"+string);Mono<Void> doFinally = chain.filter(exchange).doFinally((result) -> {System.out.println("当前操作的结束时间" + System.currentTimeMillis());});return doFinally;}@Overridepublic int getOrder() {return 0;}
}

gateway yml 跨域配置

请求效果

http://www.lryc.cn/news/2402150.html

相关文章:

  • pytorch基本运算-导数和f-string
  • impala中更改公网ip为内网ip
  • 5.RV1126-OPENCV 图形计算面积
  • 一键净化Excel数据:高性能Python脚本实现多核并行清理
  • 【Android基础回顾】一:Binder机制是什么?有什么用?
  • LeetCode 高频 SQL 50 题(基础版) 之 【高级查询和连接】· 上
  • 资产智慧管理安全监测中心
  • 从零开始的云计算——番外实战,iptables防火墙项目
  • 移动网页调试的多元路径:WebDebugX 与其他调试工具的组合使用策略
  • 【基于阿里云搭建数据仓库(离线)】IDEA导出Jar包(包括第三方依赖)
  • 【HarmonyOS 5】鸿蒙HarmonyOS —(cordova)研发方案详解
  • Linux程序运行日志总结
  • 【物联网-TCP/IP】
  • SAP ECC 与 SAP S/4HANA 技术架构全面对比
  • Halcon光度立体法
  • cocos3.X的oops框架oops-plugin-excel-to-json改进兼容多表单导出功能
  • Spring Boot + OpenAI 构建基于RAG的智能问答系统
  • 开源量子模拟引擎:Quantum ESPRESSO本地部署教程,第一性原理计算轻松入门!
  • 算法blog合集
  • 每日八股文6.3
  • Kubernetes (k8s)版本发布情况
  • QT 5.9.2+VTK8.0实现等高线绘制
  • CppCon 2015 学习:3D Face Tracking and Reconstruction using Modern C++
  • Three.js进阶之音频处理与展示
  • 4.2 HarmonyOS NEXT分布式AI应用实践:联邦学习、跨设备协作与个性化推荐实战
  • 兼容老设备!EtherNet/IP转DeviceNet网关解决储能产线通讯难题
  • 健康检查:在 .NET 微服务模板中优雅配置 Health Checks
  • 【Pytorch学习笔记】模型模块08——AlexNet模型详解
  • LabVIEW自感现象远程实验平台
  • AppTrace 视角下 App 一键拉起:提升应用转化率的高效方案​