【问题标题】:Zuul cannot connect to EurekaZuul 无法连接到 Eureka
【发布时间】:2016-10-06 20:57:43
【问题描述】:

我有一个运行正常的 Eureka 服务器和一个连接到它的服务。
现在,我正在尝试将 Zuul 服务器连接到 Eureka,但它无法正常工作。
我这样配置 Zuul:

zuul:
  ignoredServices: "*"
  routes:
    contacts-service: 
      path: /contacts/**
      serviceId: contacts-service

eureka:
  instance:
    preferIpAddress: true
  client:
    serviceUrl:
      defaultZone: http://eureka:admin@127.0.0.1:8761/eureka/

和我的班级

@SpringBootApplication
@EnableZuulServer
@EnableDiscoveryClient
public class EdgeApplication {

    public static void main(String[] args) {
        SpringApplication.run(EdgeApplication.class, args);
    }
}

它从不显示在尤里卡中,zuul 日志上也没有任何与尤里卡相关的东西。好像我还缺少什么。

编辑

改成@EnableZuulProxy后报错,在Eureka服务器上依然没有显示zuul服务

2016-10-06 23:26:46.574  WARN 8303 --- [nio-8080-exec-3] o.s.c.n.z.filters.post.SendErrorFilter   : Error during filtering

com.netflix.zuul.exception.ZuulException: Forwarding error
    at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.handleException(RibbonRoutingFilter.java:164) ~[spring-cloud-netflix-core-1.2.0.RELEASE.jar:1.2.0.RELEASE]
    at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.forward(RibbonRoutingFilter.java:139) ~[spring-cloud-netflix-core-1.2.0.RELEASE.jar:1.2.0.RELEASE]
    at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.run(RibbonRoutingFilter.java:84) ~[spring-cloud-netflix-core-1.2.0.RELEASE.jar:1.2.0.RELEASE]
    at com.netflix.zuul.ZuulFilter.runFilter(ZuulFilter.java:112) ~[zuul-core-1.2.2.jar:1.2.2]
    at com.netflix.zuul.FilterProcessor.processZuulFilter(FilterProcessor.java:197) ~[zuul-core-1.2.2.jar:1.2.2]
    at com.netflix.zuul.FilterProcessor.runFilters(FilterProcessor.java:161) ~[zuul-core-1.2.2.jar:1.2.2]
    at com.netflix.zuul.FilterProcessor.route(FilterProcessor.java:120) ~[zuul-core-1.2.2.jar:1.2.2]
    at com.netflix.zuul.ZuulRunner.route(ZuulRunner.java:96) ~[zuul-core-1.2.2.jar:1.2.2]
    at com.netflix.zuul.http.ZuulServlet.route(ZuulServlet.java:116) ~[zuul-core-1.2.2.jar:1.2.2]
    at com.netflix.zuul.http.ZuulServlet.service(ZuulServlet.java:81) ~[zuul-core-1.2.2.jar:1.2.2]
    at org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:157) [spring-webmvc-4.3.3.RELEASE.jar:4.3.3.RELEASE]
    at org.springframework.cloud.netflix.zuul.web.ZuulController.handleRequestInternal(ZuulController.java:43) [spring-cloud-netflix-core-1.2.0.RELEASE.jar:1.2.0.RELEASE]

编辑 2

有时,我会在 eureka 服务器日志中看到这一点(不确定它是否与我的问题有关):

2016-10-06 23:52:32.824 ERROR 7053 --- [et_localhost-14] c.n.e.cluster.ReplicationTaskProcessor   : Batch update failure with HTTP status code 401; discarding 1 replication tasks
2016-10-06 23:52:32.825  WARN 7053 --- [et_localhost-14] c.n.eureka.util.batcher.TaskExecutors    : Discarding 1 tasks of TaskBatchingWorker-target_localhost-14 due to permanent error
2016-10-06 23:52:38.279  INFO 7053 --- [a-EvictionTimer] c.n.e.registry.AbstractInstanceRegistry  : Running the evict task with compensationTime 1ms

并且之后我调用了`/contacts/端点,我在zuul代理日志中看到了这个:

2016-10-06 23:52:50.256  INFO 9346 --- [nio-8080-exec-1] c.n.u.concurrent.ShutdownEnabledTimer    : Shutdown hook installed for: NFLoadBalancer-PingTimer-contacts-service
2016-10-06 23:52:50.309  INFO 9346 --- [nio-8080-exec-1] c.netflix.loadbalancer.BaseLoadBalancer  : Client:contacts-service instantiated a LoadBalancer:DynamicServerListLoadBalancer:{NFLoadBalancer:name=contacts-service,current list of Servers=[],Load balancer stats=Zone stats: {},Server stats: []}ServerList:null
2016-10-06 23:52:50.316  INFO 9346 --- [nio-8080-exec-1] c.n.l.DynamicServerListLoadBalancer      : Using serverListUpdater PollingServerListUpdater
2016-10-06 23:52:50.322  INFO 9346 --- [nio-8080-exec-1] c.n.l.DynamicServerListLoadBalancer      : DynamicServerListLoadBalancer for client contacts-service initialized: DynamicServerListLoadBalancer:{NFLoadBalancer:name=contacts-service,current list of Servers=[],Load balancer stats=Zone stats: {},Server stats: []}ServerList:com.netflix.loadbalancer.ConfigurationBasedServerList@29851ac8
2016-10-06 23:52:50.785  WARN 9346 --- [nio-8080-exec-1] o.s.c.n.z.filters.post.SendErrorFilter   : Error during filtering

【问题讨论】:

  • zuul服务器上/routes说什么?
  • { "/contacts/**": "contacts-service"}
  • 如果 zuul 不在 eureka 中,它将不知道如何联系下游服务。是的@EnableZuulProxy 是正确的使用。还有什么例外吗?
  • @spencergibb 刚刚编辑了更多信息
  • 联系人服务中的 spring.application.name 是什么?这需要匹配。

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


【解决方案1】:

您的 zuul 服务中缺少以下依赖项:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>

【讨论】:

  • 谢谢!!。也失去了几个小时的搜索......春天的魔法。
【解决方案2】:

我在下面使用了它,它对我有用。

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>

【讨论】:

    猜你喜欢
    • 2019-11-05
    • 2018-09-21
    • 2020-11-22
    • 2019-10-12
    • 2019-10-11
    • 2019-09-30
    • 2020-11-17
    • 2018-02-18
    • 1970-01-01
    相关资源
    最近更新 更多