Spring Eureka 寻找默认端口 8761 而不是自定义端口

Posted

技术标签:

【中文标题】Spring Eureka 寻找默认端口 8761 而不是自定义端口【英文标题】:Spring Eureka looking for default port 8761 instead of custom port 【发布时间】:2019-11-15 13:29:23 【问题描述】:

我有一个 Spring Boot Eureka 服务器应用程序,该应用程序配置为在端口 5000 中运行,而不是默认的 8761 端口。但是,当我运行 SBA 时,我在控制台上收到一些与 java connection denied 相关的错误,同时收听 localhost :8761

INFO 10408 --- [freshExecutor-0] com.netflix.discovery.DiscoveryClient : 从 eureka 服务器获取所有实例注册信息 ERROR 10408 --- [tbeatExecutor-0] c.n.d.s.t.d.RedirectingEurekaHttpClient : 请求执行错误。端点=默认端点 serviceUrl='http://localhost:8761/eureka/

com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException:连接被拒绝:连接在 com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:187) ~[jersey-apache-client4-1.19.1.jar:1.19.1]

稍后当我调出其他微服务时,我可以看到它们已正确注册到运行在端口 5000 上的 eureka 中。但是为什么应用程序在启动 Eureka 服务器时忽略了配置呢?

从嵌入的图片也可以看出,服务器正在 8761 中寻找已注册和不可用的副本。

非常感谢对此的任何解释。

【问题讨论】:

请提供您对客户的确认 我在这个项目中错过了使用 Eureka 属性进行的自我搜索/注册为 false。正确答案如下。 【参考方案1】:

即使将 registerWithEureka & fetchRegistry 添加为 false,它仍然指向 8761 作为副本 url。

eureka.client.registerWithEureka = false 
eureka.client.fetchRegistry = false

问题的根本原因实际上并不是将自注册/搜索注册表属性设置为 false,而是修改/指定了正确的 serviceUrl 属性。

在 application.properties 中添加了以下行,现在我的 Eureka 服务器没有指向注册副本 url 的默认 Eureka 端口 8761。

eureka.client.serviceUrl.defaultZone: http://localhost:$server.port/eureka/

【讨论】:

【参考方案2】:
Default port for eureka server is 8761 but you can override it using server.port property in application.properties file or application.yml file. 

For e.g.
(application.properties)
   server.port=5000 
(application.yml)
   server:   
    port: 8761

One more thing, you need to specify following properties too to avoid auto registration of eureka.

**application.properties file:-**

eureka.client.registerWithEureka = false
eureka.client.fetchRegistry = false

**application.yml file :-** 

eureka:
   client:
      registerWithEureka: false
      fetchRegistry: false

It should start your application on port 5000. If you still face any issues, just show your properties or yml file code here.

【讨论】:

【参考方案3】:

请像下面这样配置 eureka 服务器。 eureka 服务器也将充当 eureka 客户端。所以服务器尝试将自己注册为客户端并寻找默认端口 8761。

server:
  port: 9000

eureka:
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://localhost:9000/eureka

【讨论】:

以上是关于Spring Eureka 寻找默认端口 8761 而不是自定义端口的主要内容,如果未能解决你的问题,请参考以下文章

使用spring cloud更改eureka服务器的默认端口

使用自定义端口和地址配置 Eureka 服务器和客户端

Eureka报错: Connect to localhost:8761 timed out

spring-cloud: eureka之:ribbon负载均衡配置

6-2 播放厅模块基础环境构建

Eureka:如何禁用/配置对等复制?