【问题标题】:spring cloud zuul "path": "/actuator/routes" 404 not foundspring cloud zuul "path": "/actuator/routes" 404 未找到
【发布时间】:2023-08-23 17:03:02
【问题描述】:

我使用 Spring Cloud,我想配置 Zuul

zuul服务的application.yml是

server:
  port: 5555

  #Setting logging levels
logging:
    level:
      com.netflix: WARN
      org.springframework.web: WARN
      com.thoughtmechanix: DEBUG

eureka:
  instance:
    preferIpAddress: true
  client:
    registerWithEureka: true
    fetchRegistry: true
    serviceUrl:
        defaultZone: http://localhost:8761/eureka/
zuul:
  prefix:  /api
  routes:
    organizationservice: /organization/**
    licensingservice: /licensing/**

当我启动应用程序时,我在控制台中看到

zuulserver_1             | 2019-07-28 15:25:30.871  INFO 29 --- [           main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 5555
zuulserver_1             | 2019-07-28 15:25:30.910  INFO 29 --- [           main] c.t.zuulsvr.ZuulServerApplication        : Started ZuulServerApplication in 99.792 seconds (JVM running for 104.442)
specialroutes-service_1  | 2019-07-28 15:25:33.222  INFO 29 --- [           **main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 2 endpoint(s) beneath base path '/actuator'
organizationservice_1    | 2019-07-28 15:25:33.936  INFO 30 --- [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 2 endpoint(s) beneath base path '/actuator'**

但是当我运行 url 时

http://192.168.1.41:5555/actuator/routes

我收到消息

{
    "timestamp": "2019-07-28T15:32:14.254+0000",
    "status": 404,
    "error": "Not Found",
    "message": "No message available",
    "path": "/actuator/routes"
}

在控制台中的消息是

zuulserver_1             | 2019-07-28 15:48:36.494  INFO 28 --- [nio-5555-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
zuulserver_1             | 2019-07-28 15:48:36.624 DEBUG 28 --- [nio-5555-exec-1] c.t.zuulsvr.utils.UserContextFilter      : Special Routes Service Incoming Correlation id: null

我必须如何配置 Zuul 以使用 /actuator/routes?

【问题讨论】:

    标签: spring cloud netflix-zuul


    【解决方案1】:

    默认情况下,仅公开 /health/info 端点。

    如文档所示,您需要公开端点:

    https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Migration-Guide#endpoints

    所以对于 yaml 文件:

    management: 
      endpoints: 
        web: 
          exposure: 
            include: '*'
    

    或者如果你只想曝光routes:

    management: 
      endpoints: 
        web: 
          exposure: 
            include: 'routes'
    

    /actuator/routes 将可用。

    【讨论】: