java SpringCloudGateway -URL中服务名称重复的路由问题

67up9zun  于 2023-03-16  发布在  Java
关注(0)|答案(2)|浏览(254)

我尝试使用Spring-Cloud-Gateway在我们的项目上实现API-Gateway服务。
假设我有一个名为admin的服务,我正尝试按如下方式配置它的路由:

spring:
  application:
    name: gateway
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true
          lower-case-service-id: true
      routes:
        - id: admin_route
          uri: lb://admin
          predicates:
            - Path=/**

它编译成功,但只是有一个问题!!
我在admin服务上有一个API,URL如下所示,没有网关也能正常工作:

http://localhost:<ADMIN_PORT>/admin/system/employee/check

但是当我想通过gateway服务调用这个API时,我必须复制URL中的admin,如下所示,这样它才能正常工作:

http://localhost:<GATEWAY_PORT>/admin/admin/system/employee/check

有人知道或知道如何解决这个问题吗?
任何帮助都将不胜感激!!

注意:Spring-Boot 2.7.0、Soring云计算2021.0.3、Java 1.8
更新************

我在admin的application.yml中设置了servlet-context-path,如下所示:

server:
  port: <ADMIN_PORT>
  servlet:
    context-path: /admin

我想这就是为什么我需要在URL中复制服务名称的原因,但是我在SpringCloudGateway上找不到任何与此主题相关的配置!!
还是很感谢你的帮助!!!:))

uqcuzwp8

uqcuzwp81#

您似乎正在admin uri上托管网关

hjzp0vay

hjzp0vay2#

检查路由URI配置。
你有这个:

uri: lb://admin

把它改成这样:

uri: lb://

相关问题