客户端注册eureka服务失败registration failed Cannot execute request on any known server

错误情景

SpringBoot 2.0.3.RELEASE

SpringCloud Finchley.RELEASE

启动 eureka 客户端,报如下错误:

2019-02-01 11:36:56.933  INFO 388404 --- [           main] com.netflix.discovery.DiscoveryClient    : Application version is -1: true
2019-02-01 11:36:56.933  INFO 388404 --- [           main] com.netflix.discovery.DiscoveryClient    : Getting all instance registry info from the eureka server
2019-02-01 11:36:57.375  INFO 388404 --- [           main] com.netflix.discovery.DiscoveryClient    : The response status is 200
2019-02-01 11:36:57.377  INFO 388404 --- [           main] com.netflix.discovery.DiscoveryClient    : Starting heartbeat executor: renew interval is: 30
2019-02-01 11:36:57.380  INFO 388404 --- [           main] c.n.discovery.InstanceInfoReplicator     : InstanceInfoReplicator onDemand update allowed rate per min is 4
2019-02-01 11:36:57.385  INFO 388404 --- [           main] com.netflix.discovery.DiscoveryClient    : Discovery Client initialized at timestamp 1548992217383 with initial instances count: 0
2019-02-01 11:36:57.389  INFO 388404 --- [           main] o.s.c.n.e.s.EurekaServiceRegistry        : Registering application sc-config-server with eureka with status UP
2019-02-01 11:36:57.390  INFO 388404 --- [           main] com.netflix.discovery.DiscoveryClient    : Saw local status change event StatusChangeEvent [timestamp=1548992217390, current=UP, previous=STARTING]
2019-02-01 11:36:57.392  INFO 388404 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient    : DiscoveryClient_SC-CONFIG-SERVER/sc-config-server:8800: registering service...
2019-02-01 11:36:57.469  INFO 388404 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8800 (http) with context path ''
2019-02-01 11:36:57.470  INFO 388404 --- [           main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 8800
2019-02-01 11:36:57.475  INFO 388404 --- [           main] com.fhbean.sb2sc.ScConfigApplication     : Started ScConfigApplication in 12.616 seconds (JVM running for 14.483)
2019-02-01 11:36:57.495  WARN 388404 --- [nfoReplicator-0] c.n.d.s.t.d.RetryableEurekaHttpClient    : Request execution failure with status code 403; retrying on another server if available
2019-02-01 11:36:57.502  WARN 388404 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient    : DiscoveryClient_SC-CONFIG-SERVER/sc-config-server:8800 - registration failed Cannot execute request on any known server
 
com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
	at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:112) ~[eureka-client-1.9.2.jar:1.9.2]
	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56) ~[eureka-client-1.9.2.jar:1.9.2]
	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$1.execute(EurekaHttpClientDecorator.java:59) ~[eureka-client-1.9.2.jar:1.9.2]
	at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77) ~[eureka-client-1.9.2.jar:1.9.2]
	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56) ~[eureka-client-1.9.2.jar:1.9.2]
	at com.netflix.discovery.DiscoveryClient.register(DiscoveryClient.java:829) ~[eureka-client-1.9.2.jar:1.9.2]
	at com.netflix.discovery.InstanceInfoReplicator.run(InstanceInfoReplicator.java:121) [eureka-client-1.9.2.jar:1.9.2]
	at com.netflix.discovery.InstanceInfoReplicator$1.run(InstanceInfoReplicator.java:101) [eureka-client-1.9.2.jar:1.9.2]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_121]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_121]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_121]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_121]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_121]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_121]
	at java.lang.Thread.run(Thread.java:745) [na:1.8.0_121]
 

配置文件

客户端的application.yml配置如下:

server:
  port: 8800
 
spring:
  security:
    basic:
      enabled: true
    user:
      name: root
      password: booszy
  application:
    name: sc-config-server
  cloud:
    config:
      server:
        git:
          uri: https://git.coding.net/yirenyishi/springcloud-config-profile
          search-paths: '{application}'
 
eureka:
  client:
    service-url:
      defaultZone: http://root:booszy@localhost:8761/eureka/
 
  instance:
    prefer-ip-address: true
    instance-id: ${spring.application.name}:${spring.application.instance_id:${server.port}}
    appname: sc-config-server

eureka服务端的application.yml配置如下:

server:
  port: 8761
 
eureka:
  datacenter: trmap
  environment: product
  server:
    # 关闭自我保护
    enable-self-preservation: false
    # 清理服务器
    eviction-interval-timer-in-ms: 5000
  client:
    healthcheck:
      enabled: true
    service-url:
      defaultZone: http://root:booszy@localhost:8761/eureka/
    register-with-eureka: false
    fetch-registry: false
 
spring:
  security:
    basic:
      enabled: true
    user:
      name: root
      password: booszy

解决办法

出现这个错误提示,有两种可能:

1、defaultZone的地址拼写错误,比如

把defaultZone拼写为defalutZone,或者defaultZone后面没有冒号,或冒号后面没有空格等

把service-url拼写错,等

总之eureka.client.service-url.defaultZone写错一个字母都会报此错误

2、新版的security默认启用了csrf检验,要在eureka服务端那边配置security的csrf检验为false

在server端,编写如下代码,再重启server和client

@EnableWebSecurity
public class WebSecurityConfigurer extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable();
        super.configure(http);
    }
}

原文链接:https://blog.csdn.net/wender/article/details/86737826

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"Cannot execute request on any known server" 是 Eureka 服务的一个异常,它表示无法在任何已知的服务器上执行请求。出现这个异常的原因可能是连接Eureka 服务端的地址不正确。解决这个问题的方法有以下几种: 1. 确保 Eureka 服务端的地址配置正确。在连接 Eureka 服务端时,需要在客户端的配置文件指定正确的服务端地址。可以通过检查配置文件eureka.client.service-url.defaultZone 属性来确认是否配置了正确的地址。 2. 检查网络连接。如果客户端无法访问到 Eureka 服务端,也会导致出现这个异常。可以尝试通过 ping 命令或者 telnet 命令来测试客户端是否能够正常连接服务端。 3. 检查服务端是否正常运行。如果服务端没有正常启动或者出现了其他异常,也会导致客户端无法连接服务端。可以检查服务端的日志文件或者尝试重新启动服务端来解决问题。 总结起来,解决 "Cannot execute request on any known server" 异常的关键是确保客户端配置的服务端地址正确,并且确保网络连接服务端的正常运行。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Eureka 客户端连接Eureka服务端时 Cannot execute request on any known server 解决办法](https://blog.csdn.net/weixin_30795127/article/details/101113865)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [springcloud服务端与客户端注册Demo](https://download.csdn.net/download/worldwhite/10476453)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Eureka启动Cannot execute request on any known server异常](https://blog.csdn.net/weixin_53794227/article/details/124098368)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值