You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JHipster7.8.1无注册中心时网关路由微服务返回404问题

问题结论

你没有遗漏JHipster的默认配置,JHipster 7.8.1版本的响应式网关默认仅提供了基于服务发现组件的自动路由实现,没有内置无服务发现场景的适配逻辑,必须手动调整网关配置才能实现正常转发。

问题原因

你贴出的spring.cloud.gateway.discovery.locator配置是Spring Cloud Gateway绑定服务发现组件的自动路由规则:开启后网关会持续从注册中心拉取已注册的微服务实例列表,自动生成/services/{服务名小写}/**格式的匹配规则,重写路径后转发到对应服务。
当你禁用Eureka后,这个locator无法拉取到任何服务实例信息,不会生成任何转发路由,前端请求到达网关后匹配不到对应规则,就会直接返回404,这也是为什么开启Eureka后整套架构可以正常运行。

具体配置调整步骤
  • 关闭无效的服务发现自动路由配置
    将spring.cloud.gateway.discovery.locator.enabled配置项修改为false,避免无注册中心场景下的无效逻辑干扰。
  • 为每个微服务添加显式静态路由
    在网关配置的spring.cloud.gateway.routes节点下,为每一个下游微服务手动配置路由规则,保持和原自动路由一致的路径匹配、重写逻辑,以及JWT转发过滤器,这样前端原有请求代码不需要做任何修改。
    配置示例如下(假设你有两个微服务,分别为部署在8081端口的商品服务、8082端口的订单服务,服务访问路径前缀分别为/services/product、/services/order):
    spring:
      cloud:
        gateway:
          default-filters:
            - JWTRelay
          discovery:
            locator:
              enabled: false
              lower-case-service-id: true
          routes:
            - id: product_service
              uri: http://localhost:8081 # 替换为对应微服务的实际访问地址,多实例场景可替换为负载均衡地址
              predicates:
                - Path=/services/product/**
              filters:
                - RewritePath=/services/product/(?<remaining>.*), /${remaining}
            - id: order_service
              uri: http://localhost:8082
              predicates:
                - Path=/services/order/**
              filters:
                - RewritePath=/services/order/(?<remaining>.*), /${remaining}
    
配置注意事项
  • 不要移除JWTRelay过滤器,这个过滤器负责把网关侧解析后的JWT认证信息传递给下游微服务,移除后微服务无法获取用户登录态,会直接返回401鉴权错误。
  • 路由配置的路径前缀需要和前端请求前缀对齐:JHipster Angular前端访问微服务API的默认前缀为/services/{微服务短横线小写名},配置Path规则时要和这个前缀保持一致,否则还是会出现路由匹配失败的问题。
  • 如果是多实例部署场景,不想使用Eureka的话,可以将路由的uri配置为前置负载均衡组件(如Nginx)的地址,也可以自行整合Spring Cloud LoadBalancer配置静态服务实例列表实现负载均衡,核心是必须显式声明路由规则,无法再依赖服务发现locator自动生成路由。

内容的提问来源于stack exchange,提问作者Dwaraka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 14:27:18