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

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 跨域配置

请求效果

相关文章:

  • NLP常用工具包
  • FreeType 字体信息检查工具 - 现代C++实现
  • 信创认证通关攻略:从环境搭建到测试报告的全流程操作指南
  • Maskrcnn网络结构学习
  • ArcGIS Pro 3.4 二次开发 - 地图探索
  • Neo4j 认证与授权:原理、技术与最佳实践深度解析
  • GO语言---函数命名返回值
  • DrissionPage爬虫包实战分享
  • Ethernet IP转Modbus网关在热泵机组中的协议转换技术实现
  • Vue中的自定义事件
  • 自注意力,多头注意力,交叉注意力代码对比
  • Cisco Packet Tracer软件如何修改文件存储位置
  • 制造业数字化转型解决方案及应用
  • 【Python训练营打卡】day43 @浙大疏锦行
  • C语言获取数组长度方法大全(附带实例)
  • 共聚焦显微镜—赋能光学元件精密质控
  • 常见优化器Optimizer总结
  • 论文润色指令
  • shell:基础
  • C语言数组初始化方法大全(附带实例)
  • 新手学做网站下载/百度seo如何优化
  • 网站建设工作领导小组/自己创建网站
  • 独立网站怎样建设/成都抖音seo
  • 有哪些网站可以做h5/手机推广软文
  • 上海自贸区注册公司的条件/长沙seo网站排名
  • 微信网站建设哪家好/百度搜索热度指数