让spring gateway 支持contextPath
让spring gateway 支持contextPath
1. 需求
公司环境中把服务部署到了k8s中,通过对服务进行健康检测自动自动重启故障服务;
所有服务都采用了 actuator/health
因为spring gateway是采用webflux,无法通过server.servlet.contextPath来配置(业务服务都统一进行了配置)
业务服务的访问路径: http://ip:8080/user/actuator/health
网关的访问路径: http://ip:8080/actuator/health
业务服务路径带了contextPath,而网关的没有
导致检测脚本可能需要额外的进行判断,不是很友好。
需要想办法将网关与业务的路径调整到一致。
2. 问题
为了解决这个问题,有两种思路:
1. 所有业务服务不再配置 contextPath
2. 让网关支持contextPath
---
写这篇文章肯定是选择2了。
因为我们的业务服务比较多,而且还有已经稳定运行使用的服务,所以无法简单的调整。
3. 解决
使用的版本如下:
spring-cloud-gateway:2.1.2
spring-boot : 2.1.6
---
题外话: 好像spring-boot 2.3 已经支持webflux设置contextPath了。
思路:
网关本身没有contextPath,可以通过在路由中增加一条本地路由,通过自己转发自己,达到能处理contextPath
配置:
spring:cloud:gateway:routes:# 网关本身没有contextPath,通过自己转发自己,达到能处理contextPath- id: selfuri: http://localhost:${server.port}predicates:- Path=/${spring.application.name}/**filters:- StripPrefix=1order: -11000
让spring gateway 支持contextPath相关推荐
- Spring Gateway路由网关
文章目录 简介 routes 路由服务 配置文件方式 Java DSL方式 predicates 路由断言 filters 过滤功能 自定义过滤器 简介 https://mp.weixin.qq.co ...
- Spring Gateway locator 自动路由兼容context-path
背景 基于Spring Gateway和Eureka 结合的微服务开发方式, 如果使用自动路由解析,可以将微服务上的eureka服务ID当成路由的key,从而能够根据网关地址+服务ID实现服务的自动转 ...
- 关于 springcloud gateway 设置 context-path 的问题
大家好,我是烤鸭: 今天说一下遇到的问题,关于 springcloud gateway 设置 context-path 的问题. 1. 使用场景 由于没有申请二级域名,网关使用的地址是 xxx.co ...
- 对比Eureka和Nacos 的区别 Zuul和Spring Gateway的区别
目录 Eureka与Nacos的区别 1.功能差异 2.部署安装 3.稳定及扩展 4.总结 Spring gateway与zuul的区别 1. 产品对比 2 性能对比 3总结 Eureka与Nacos ...
- GateWay坑——context-path
GateWay坑--context-path 环境准备 正确路由 context-path和application.name不一致 注册中心 Gateway网关设置 访问结果 路由失败 context ...
- Spring Gateway聚合Swagger在线文档
Spring Gateway聚合Swagger在线文档 为什么需要聚合? 如何聚合? 单个服务如何聚合Swagger? 1.添加依赖 2.基础配置类 3.Swagger文档信息装配类 4.微服务添加引 ...
- MyEclipse中删除对Struts、hibernate、spring的支持
注:本文转载自:http://blog.csdn.net/j04110414/article/details/9900033,版权归其所有 一.首先是撤消MyEclipse对Struts的支持 关键的 ...
- http invoker_Http Invoker的Spring Remoting支持
http invoker Spring HTTP Invoker是Java到Java远程处理的重要解决方案. 该技术使用标准的Java序列化机制通过HTTP公开服务,并且可以看作是替代方法,而不是He ...
- Spring测试支持和上下文缓存
Spring为单元测试和集成测试提供了全面的支持-通过注释来加载Spring应用程序上下文,并与JUnit和TestNG等单元测试框架集成. 由于为每个测试加载大型应用程序上下文需要时间,因此Spri ...
最新文章
- 密码学研究-数字签名
- 成熟的男人思考的东西
- 一文解开java中字符串编码的小秘密
- AutoML数据增广
- JS检测浏览器是否最大化
- jstl有什么优势(简单介绍)
- 线性表的链式存储实现
- PHP 工厂模式浅析
- html怎么转为rp,html rp标签怎么用
- 记录因安装npcap带来的无线连接上不了网的问题
- 【Python】Python绘制CIE1931色度图并标点
- java.lang.ClassCastException: Ljava.lang.Object; cannot be cast to com.entity.Advertisem异常
- 易到用车最艰难时刻,未来赌什么?
- echart中饼图或者南丁格尔玫瑰图是否显示label或lableLine
- 类对象初始化和Initializer_list的
- Docker常用软件安装之MYSQL
- 计算机c语言基础字符,2008计算机二级考试:C语言基础教程-C语言字符型数据
- CVE-2022-26923域提权漏洞
- 教你用软件制作自己的系统主题包
- 最小拍无差控制器MATLAB求解,最小拍控制器设计.doc