Microservices 如何使用Zuul路由到另一个端口

Microservices 如何使用Zuul路由到另一个端口,microservices,spring-cloud,netflix-eureka,netflix-zuul,Microservices,Spring Cloud,Netflix Eureka,Netflix Zuul,我正在尝试使用端口8080(shop)将我所有的微服务路由到一条路由 我有一个连接到Eureka服务器(端口:8084)的microservicearticlemicroservice 我还有zuulservice连接到Eureka(在8888端口上运行) 例如: 应在 我尝试在zuul服务器的application.yml中对其进行如下配置: eureka: client: serviceUrl: defaultZone: http://localhost:8888/e

我正在尝试使用端口8080(shop)将我所有的微服务路由到一条路由

我有一个连接到Eureka服务器(端口:8084)的microservicearticlemicroservice

我还有zuulservice连接到Eureka(在8888端口上运行)

例如: 应在

我尝试在zuul服务器的application.yml中对其进行如下配置:

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8888/eureka
server:
  port: 8079
zuul:
  routes:
    articlemicroservice:
      path: /*
      serviceId: articlemicroservice
      url: http://localhost:8080/
重要提示:商店(端口:8080)未连接到Eureka

ArticleMicroService:

server.port=8084
spring.application.name=articlemicroservice

eureka.client.serviceUrl.defaultZone=http://localhost:8888/eureka/
eureka.client.fetchRegristry=true
eureka.instance.preferIpAddress=true
server.port=8080
spring.application.name=shopmicroservice
server.port=8888
spring.application.name=eurekaserver

eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://localhost:8888/eureka/

eureka.instance.lease-expiration-duration-in-seconds:2
商店微服务:

server.port=8084
spring.application.name=articlemicroservice

eureka.client.serviceUrl.defaultZone=http://localhost:8888/eureka/
eureka.client.fetchRegristry=true
eureka.instance.preferIpAddress=true
server.port=8080
spring.application.name=shopmicroservice
server.port=8888
spring.application.name=eurekaserver

eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://localhost:8888/eureka/

eureka.instance.lease-expiration-duration-in-seconds:2
编辑:带有yml的示例不起作用

编辑:

server.port=8084
spring.application.name=articlemicroservice

eureka.client.serviceUrl.defaultZone=http://localhost:8888/eureka/
eureka.client.fetchRegristry=true
eureka.instance.preferIpAddress=true
server.port=8080
spring.application.name=shopmicroservice
server.port=8888
spring.application.name=eurekaserver

eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://localhost:8888/eureka/

eureka.instance.lease-expiration-duration-in-seconds:2
Eureka服务器:

server.port=8084
spring.application.name=articlemicroservice

eureka.client.serviceUrl.defaultZone=http://localhost:8888/eureka/
eureka.client.fetchRegristry=true
eureka.instance.preferIpAddress=true
server.port=8080
spring.application.name=shopmicroservice
server.port=8888
spring.application.name=eurekaserver

eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://localhost:8888/eureka/

eureka.instance.lease-expiration-duration-in-seconds:2

我认为在端口8080上需要一个网关应用程序,该应用程序将代理在任何其他端口下部署的其他应用程序的请求

  • 在8080上运行Zuulproxy
  • 在ex.8081上运行ShopMicroService
  • 在8084上运行ArticleMicroService
  • 配置zuul路由,如:

    zuul:
      routes:
        articlemicroservice:
            path: /article/**
            url: http://localhost:8084/
        shopmicroservice:
            path: /shop/**
            url: http://localhost:8081/
    
  • 好例子:

    或者我认为你可以在ShopMicroService中@EnableZuulProxy

    zuul:
      routes:
        articlemicroservice:
          path: /article/**
          url: http://localhost:8084/
    

    我认为没有办法让ZUUL在8079上工作

    我认为你把一些概念搞砸了。唯一可以转发到其他内容的是运行在8079端口上的zuul。它可以将流量转发到端口8080。