错误问题:
在这里插入图片描述
报错信息: 连接http://localhost:8761/eureka 的注册中心被拒绝,无法连接

改正后的两个配置文件:

server:
  port: 8088
eureka:
  instance:
    hostname: localhost
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
server:
  port: 8082
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8088/eureka/
spring:
  application:
    name: provider-client

查找原因:主要是配置文件中的 defaultZone原先的写法问题。
原先是

service-url:
      default-zone: http://${eureka.instance.hostname}:${server.port}/eureka/

原因:
服务中指定的 http://localhost:8088/eureka 注册中心地址无效,而用了springcloud默认的注册中心地址
改正:
修改服务中的配置文件属性 default-zone为defaultZone

查阅文件:
了解到 8761 是Eureka的默认路径, 服务提供者配置文件中default-zone属性识别不到,Eureka认为启动配置里没有对它的url地址指定时, 会默认寻找这个地址
这里部分源码:

@ConfigurationProperties("eureka.client")
public class EurekaClientConfigBean implements EurekaClientConfig, Ordered {
    public static final String PREFIX = "eureka.client";
    public static final String DEFAULT_URL = "http://localhost:8761/eureka/";
    public static final String DEFAULT_ZONE = "defaultZone";
    private static final int MINUTES = 60;
    @Autowired(
        required = false
    )
    PropertyResolver propertyResolver;
    private boolean enabled = true;

Eureka报错: Connect to localhost:8761 timed out

这边附带一篇文章:从源码角度解释修改的原因
eureka 自定义defaultZone无效问题

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐