如何使用Zuul路线到另一个港口

时间:2019-03-17 14:21:58

标签: microservices spring-cloud netflix-eureka netflix-zuul

我正在尝试将所有微服务通过端口8080(商店)路由到一条路由

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

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

示例: http://localhost:8084/articles应该在http://localhost:8080/articles上可用

我试图在zuul服务器的application.yml中配置它,如下所示:

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8888/eureka
server:
  port: 8079
zuul:
  routes:
    articlemicroservice:
      path: /*
      serviceId: articlemicroservice
      url: http://localhost:8080/

重要提示:商店(Port: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

ShopMicroService:

server.port=8080
spring.application.name=shopmicroservice

编辑:带有yml的示例不起作用。

编辑:

Eureka服务器:

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

1 个答案:

答案 0 :(得分:1)

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

  1. 在8080上运行Zuulproxy
  2. 在ex上运行ShopMicroService。 8081
  3. 在8084上运行ArticleMicroService
  4. 配置zuul路由,例如:

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

很棒的例子:https://github.com/sqshq/piggymetrics

或者我认为您可以在ShopMicroService中使用@EnableZuulProxy

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

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