Java Zuul代理未路由

Java Zuul代理未路由,java,spring,netflix-zuul,netflix-eureka,Java,Spring,Netflix Zuul,Netflix Eureka,在使用spring微服务时,我无法通过zuul代理路由api 这是我的密码 欧尔卡: application.yml spring: application: name: api cloud: config: enabled: true server: port: ${PORT:8761} eureka: client: registerWithEureka: false fetchRegistry: false serv

在使用spring微服务时,我无法通过zuul代理路由api

这是我的密码

欧尔卡:

application.yml

spring:
  application:
    name: api
  cloud:
    config:
      enabled: true

server:
  port: ${PORT:8761}


eureka:
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
  instance:
    hostname: localhost
spring:
  application:
    name: proxy-server

server:
  port: 8079

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka
  fetchRegistry: true

zuul:
  ignored-services: '*'
  prefix: /api
  routes:
    account:
        path: /account/**
        serviceId: account
        stripPrefix: false
  host:
    socket-timeout-millis: 30000

ribbion:
  eureka:
    enabled: true
ribbion:
  eureka:
    enabled: true


eureka:
  instance:
    preferIpAddress: true
  client:
    serviceUrl:
      defaultZone: ${EUREKA_URI:http://localhost:8761/eureka}
    instance:
      preferIpAddress: true
spring:
     application:
           name: account
祖尔:

application.yml

spring:
  application:
    name: api
  cloud:
    config:
      enabled: true

server:
  port: ${PORT:8761}


eureka:
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
  instance:
    hostname: localhost
spring:
  application:
    name: proxy-server

server:
  port: 8079

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka
  fetchRegistry: true

zuul:
  ignored-services: '*'
  prefix: /api
  routes:
    account:
        path: /account/**
        serviceId: account
        stripPrefix: false
  host:
    socket-timeout-millis: 30000

ribbion:
  eureka:
    enabled: true
ribbion:
  eureka:
    enabled: true


eureka:
  instance:
    preferIpAddress: true
  client:
    serviceUrl:
      defaultZone: ${EUREKA_URI:http://localhost:8761/eureka}
    instance:
      preferIpAddress: true
spring:
     application:
           name: account
帐目 application.yml

spring:
  application:
    name: api
  cloud:
    config:
      enabled: true

server:
  port: ${PORT:8761}


eureka:
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
  instance:
    hostname: localhost
spring:
  application:
    name: proxy-server

server:
  port: 8079

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka
  fetchRegistry: true

zuul:
  ignored-services: '*'
  prefix: /api
  routes:
    account:
        path: /account/**
        serviceId: account
        stripPrefix: false
  host:
    socket-timeout-millis: 30000

ribbion:
  eureka:
    enabled: true
ribbion:
  eureka:
    enabled: true


eureka:
  instance:
    preferIpAddress: true
  client:
    serviceUrl:
      defaultZone: ${EUREKA_URI:http://localhost:8761/eureka}
    instance:
      preferIpAddress: true
spring:
     application:
           name: account
依赖关系:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Finchley.SR1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

org.springframework.cloud
spring云依赖关系
Finchley.SR1
聚甲醛
进口
现在url
localhost:8080/user/
运行正常,但是
localhost:8080/api/account/user/
抛出了404


不确定我在这里做错了什么,任何见解都会有帮助。如果您需要其他详细信息,请告诉我。

您需要做的是

  • 生成一个springboot项目,并将Zuul作为依赖项
  • @EnableZuulProxy
  • application.properties
    文件中配置路由和端点
  • 构建并启动服务
  • 我建议首先实施上述步骤并使其发挥作用。然后根据需要定制该项目。下面是一篇文章,详细介绍了上述步骤。
    我想你忘了在account application.yml中添加帐户服务的名称

    spring:
      application:
        name: api
      cloud:
        config:
          enabled: true
    
    server:
      port: ${PORT:8761}
    
    
    eureka:
      client:
        registerWithEureka: false
        fetchRegistry: false
        serviceUrl:
          defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
      instance:
        hostname: localhost
    
    spring:
      application:
        name: proxy-server
    
    server:
      port: 8079
    
    eureka:
      client:
        serviceUrl:
          defaultZone: http://localhost:8761/eureka
      fetchRegistry: true
    
    zuul:
      ignored-services: '*'
      prefix: /api
      routes:
        account:
            path: /account/**
            serviceId: account
            stripPrefix: false
      host:
        socket-timeout-millis: 30000
    
    ribbion:
      eureka:
        enabled: true
    
    ribbion:
      eureka:
        enabled: true
    
    
    eureka:
      instance:
        preferIpAddress: true
      client:
        serviceUrl:
          defaultZone: ${EUREKA_URI:http://localhost:8761/eureka}
        instance:
          preferIpAddress: true
    
    spring:
         application:
               name: account
    

    下游服务上api/帐户/用户的路由是什么?其
    localhost:8080/user
    @shinjw存在路由不匹配。下游服务需要是完全合格的路径。否则,您将需要通过Zuulfilter操作路径。您的Zuul代理位于端口
    8079
    上,而不是端口
    8080
    。您可以提供@shinjw,请使用此url查看示例。我在下面的教程中提到,
    localhost:{zuulPort}/{prefix}/{serviceId}/{down Microservice url}