Eureka客户端无法连接服务注册中心

转载自:https://my.oschina.net/kousm/blog/2249003

服务端

application.yml配置


   
   
  1. spring:
  2. application:
  3. name: eureka-service
  4. eureka:
  5. client:
  6. fetch-registry: 'false'
  7. register- with-eureka: 'false'
  8. server:
  9. enable-self-preservation: false
  10. eviction-interval-timer- in-ms: 100
  11. #eureka服务器端口
  12. server:
  13. port: '21001'

EurekaApplication.java


   
   
  1. package org.gradle;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
  5. @EnableEurekaServer //作为服务端注解
  6. @SpringBootApplication
  7. public class EurekaApplication {
  8. public static void main(String[] args) throws Exception {
  9. SpringApplication.run(EurekaApplication.class, args);
  10. }
  11. }

客户端

application.yml


   
   
  1. server:
  2. port: '21002'
  3. eureka:
  4. client:
  5. serviceUrl:
  6. defaultZone: http://服务端ip:21001/eureka/
  7. instance:
  8. instance-id: test-client
  9. hostname: cloud-provider
  10. preferIpAddress: true
  11. ip-address: 客户端ip
  12. spring:
  13. application:
  14. name: test-client
  15. http:
  16. encoding:
  17. force: true
  18. charset: UTF-8
  19. enabled: true

主入口类Application.java


   
   
  1. package org.gradle;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
  5. @EnableDiscoveryClient
  6. @SpringBootApplication
  7. public class ApplicationClient {
  8. public static void main(String[] args) throws Exception {
  9. SpringApplication.run(ApplicationClient.class, args);
  10. }
  11. }

Controller类Person.java


   
   
  1. package org .gradle;
  2. import org .springframework .web .bind .annotation .RequestMapping;
  3. import org .springframework .web .bind .annotation .RestController;
  4. @ RestController
  5. public class Person {
  6. @ RequestMapping("/ getName")
  7. public String getName() {
  8. return " hello eureka";
  9. }
  10. }

eureka的服务注册中心可以正常启动起来,在启动客户端的服务的时候无法连接上注册中心。

部分报错信息如下:


   
   
  1. 2018- 10- 18 17 : 23 : 42.727 INFO 7852 --- [ main] com.netflix.discovery.DiscoveryClient : Application is null : false
  2. 2018- 10- 18 17 : 23 : 42.727 INFO 7852 --- [ main] com.netflix.discovery.DiscoveryClient : Registered Applications size is zero : true
  3. 2018- 10- 18 17 : 23 : 42.727 INFO 7852 --- [ main] com.netflix.discovery.DiscoveryClient : Application version is - 1: true
  4. 2018- 10- 18 17 : 23 : 42.727 INFO 7852 --- [ main] com.netflix.discovery.DiscoveryClient : Getting all instance registry info from the eureka server
  5. 2018- 10- 18 17 : 23 : 44.792 ERROR 7852 --- [ main] c.n.d.s.t.d.RedirectingEurekaHttpClient : Request execution error
  6. com.sun.jersey.api.client. ClientHandlerException: java.net. ConnectException: Connection refused: connect
  7. at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler. java: 187) ~[jersey-apache-client4- 1.19. 1. jar: 1.19. 1]
  8. at com.sun.jersey.api.client.filter.GZIPContentEncodingFilter.handle(GZIPContentEncodingFilter. java: 123) ~[jersey-client- 1.19. 1. jar: 1.19. 1]
  9. at com.netflix.discovery.EurekaIdentityHeaderFilter.handle(EurekaIdentityHeaderFilter. java: 27) ~[eureka-client- 1.7. 0. jar: 1.7. 0]
  10. at com.sun.jersey.api.client.Client.handle(Client. java: 652) ~[jersey-client- 1.19. 1. jar: 1.19. 1]
  11. at com.sun.jersey.api.client.WebResource.handle(WebResource. java: 682) ~[jersey-client- 1.19. 1. jar: 1.19. 1]
  12. at com.sun.jersey.api.client.WebResource.access$200(WebResource. java: 74) ~[jersey-client- 1.19. 1. jar: 1.19. 1]
  13. at com.sun.jersey.api.client.WebResource$Builder.get(WebResource. java: 509) ~[jersey-client- 1.19. 1. jar: 1.19. 1]
  14. at com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient.getApplicationsInternal(AbstractJerseyEurekaHttpClient. java: 194) ~[eureka-client- 1.7. 0. jar: 1.7. 0]
  15. at com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient.getApplications(AbstractJerseyEurekaHttpClient. java: 165) ~[eureka-client- 1.7. 0. jar: 1.7. 0]
  16. at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$6.execute(EurekaHttpClientDecorator. java: 137) [eureka-client- 1.7. 0. jar: 1.7. 0]
  17. at com.netflix.discovery.shared.transport.decorator.MetricsCollectingEurekaHttpClient.execute(MetricsCollectingEurekaHttpClient. java: 73) ~[eureka-client- 1.7. 0. jar: 1.7. 0]
  18. at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getApplications(EurekaHttpClientDecorator. java: 134) [eureka-client- 1.7. 0. jar: 1.7. 0]
  19. at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$6.execute(EurekaHttpClientDecorator. java: 137) [eureka-client- 1.7. 0. jar: 1.7. 0]
  20. at com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient.executeOnNewServer(RedirectingEurekaHttpClient. java: 118) ~[eureka-client- 1.7. 0. jar: 1.7. 0]
  21. at com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient.execute(RedirectingEurekaHttpClient. java: 79) ~[eureka-client- 1.7. 0. jar: 1.7. 0]
  22. at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getApplications(EurekaHttpClientDecorator. java: 134) [eureka-client- 1.7. 0. jar: 1.7. 0]
  23. at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$6.execute(EurekaHttpClientDecorator. java: 137) [eureka-client- 1.7. 0. jar: 1.7. 0]
  24. at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient. java: 119) [eureka-client- 1.7. 0. jar: 1.7. 0]
  25. at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getApplications(EurekaHttpClientDecorator. java: 134) [eureka-client- 1.7. 0. jar: 1.7. 0]
  26. at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$6.execute(EurekaHttpClientDecorator. java: 137) [eureka-client- 1.7. 0. jar: 1.7. 0]
  27. at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient. java: 77) [eureka-client- 1.7. 0. jar: 1.7. 0]
  28. at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getApplications(EurekaHttpClientDecorator. java: 134) [eureka-client- 1.7. 0. jar: 1.7. 0]
  29. at com.netflix.discovery.DiscoveryClient.getAndStoreFullRegistry(DiscoveryClient. java: 1022) [eureka-client- 1.7. 0. jar: 1.7. 0]
  30. at com.netflix.discovery.DiscoveryClient.fetchRegistry(DiscoveryClient. java: 936) [eureka-client- 1.7. 0. jar: 1.7. 0]
  31. at com.netflix.discovery.DiscoveryClient.<init>(DiscoveryClient. java: 412) [eureka-client- 1.7. 0. jar: 1.7. 0]
  32. at com.netflix.discovery.DiscoveryClient.<init>(DiscoveryClient. java: 267) [eureka-client- 1.7. 0. jar: 1.7. 0]
  33. at org.springframework.cloud.netflix.eureka.CloudEurekaClient.<init>(CloudEurekaClient. java: 61) [spring-cloud-netflix-eureka-client- 1.4. 0.RELEASE. jar: 1.4. 0.RELEASE]
  34. at org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration$RefreshableEurekaClientConfiguration.eurekaClient(EurekaClientAutoConfiguration. java: 261) [spring-cloud-netflix-eureka-client- 1.4. 0.RELEASE. jar: 1.4. 0.RELEASE]
  35. at org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration$RefreshableEurekaClientConfiguration$$EnhancerBySpringCGLIB$$ 5d9ea2ca.CGLIB$eurekaClient$0(<generated>) [spring-cloud-netflix-eureka-client- 1.4. 0.RELEASE. jar: 1.4. 0.RELEASE]
  36. at org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration$RefreshableEurekaClientConfiguration$$EnhancerBySpringCGLIB$$ 5d9ea2ca$$FastClassBySpringCGLIB$$ 1d2b2b2c.invoke(<generated>) [spring-cloud-netflix-eureka-client- 1.4. 0.RELEASE. jar: 1.4. 0.RELEASE]
  37. at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy. java: 228) [spring-core- 4.3. 13.RELEASE. jar: 4.3. 13.RELEASE]
  38. at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer. java: 358) [spring-context- 4.3. 13.RELEASE. jar: 4.3. 13.RELEASE]
  39. at org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration$RefreshableEurekaClientConfiguration$$EnhancerBySpringCGLIB$$ 5d9ea2ca.eurekaClient(<generated>) [spring-cloud-netflix-eureka-client- 1.4. 0.RELEASE. jar: 1.4. 0.RELEASE]
  40. at sun.reflect.NativeMethodAccessorImpl.invoke 0(Native Method) ~[ na: 1.8. 0_151]
  41. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java: 62) ~[ na: 1.8. 0_151]
  42. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl. java: 43) ~[ na: 1.8. 0_151]
  43. at java.lang.reflect.Method.invoke(Method. java: 498) ~[ na: 1.8. 0_151]
  44. at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy. java: 162) [spring-beans- 4.3. 13.RELEASE. jar: 4.3. 13.RELEASE]
  45. at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver. java: 588) [spring-beans- 4.3. 13.RELEASE. jar: 4.3. 13.RELEASE]
  46. at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory. java: 1173) [spring-beans- 4.3. 13.RELEASE. jar: 4.3. 13.RELEASE]
  47. at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory. java: 1067) [spring-beans- 4.3. 13.RELEASE. jar: 4.3. 13.RELEASE]
  48. at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory. java: 513) [spring-beans- 4.3. 13.RELEASE. jar: 4.3. 13.RELEASE]
  49. at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory. java: 483) [spring-beans- 4.3. 13.RELEASE. jar: 4.3. 13.RELEASE]
  50. at org.springframework.beans.factory.support.AbstractBeanFactory$2.getObject(AbstractBeanFactory. java: 345) [spring-beans- 4.3. 13.RELEASE. jar: 4.3. 13.RELEASE]
  51. at org.springframework.cloud.context.scope.GenericScope$BeanLifecycleWrapper.getBean(GenericScope. java: 379) [spring-cloud-context- 1.3. 0.RELEASE. jar: 1.3. 0.RELEASE]
  52. at org.springframework.cloud.context.scope.GenericScope.get(GenericScope. java: 181) [spring-cloud-context- 1.3. 0.RELEASE. jar: 1.3. 0.RELEASE]
  53. at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory. java: 340) [spring-beans- 4.3. 13.RELEASE. jar: 4.3. 13.RELEASE]
  54. at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory. java: 197) [spring-beans- 4.3. 13.RELEASE. jar: 4.3. 13.RELEASE]
  55. at org.springframework.aop.target.SimpleBeanTargetSource.getTarget(SimpleBeanTargetSource. java: 35) [spring-aop- 4.3. 13.RELEASE. jar: 4.3. 13.RELEASE]
  56. at org.springframework.cloud.netflix.eureka.serviceregistry.EurekaRegistration.getTargetObject(EurekaRegistration. java: 166) [spring-cloud-netflix-eureka-client- 1.4. 0.RELEASE. jar: 1.4. 0.RELEASE]
  57. at org.springframework.cloud.netflix.eureka.serviceregistry.EurekaRegistration.getEurekaClient(EurekaRegistration. java: 155) [spring-cloud-netflix-eureka-client- 1.4. 0.RELEASE. jar: 1.4. 0.RELEASE]
  58. at org.springframework.cloud.netflix.eureka.serviceregistry.EurekaServiceRegistry.maybeInitializeClient(EurekaServiceRegistry. java: 56) [spring-cloud-netflix-eureka-client- 1.4. 0.RELEASE. jar: 1.4. 0.RELEASE]
  59. at org.springframework.cloud.netflix.eureka.serviceregistry.EurekaServiceRegistry.register(EurekaServiceRegistry. java: 37) [spring-cloud-netflix-eureka-client- 1.4. 0.RELEASE. jar: 1.4. 0.RELEASE]
  60. at org.springframework.cloud.netflix.eureka.serviceregistry.EurekaAutoServiceRegistration.start(EurekaAutoServiceRegistration. java: 80) [spring-cloud-netflix-eureka-client- 1.4. 0.RELEASE. jar: 1.4. 0.RELEASE]
  61. at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor. java: 175) [spring-context- 4.3. 13.RELEASE. jar: 4.3. 13.RELEASE]
  62. at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor. java: 50) [spring-context- 4.3. 13.RELEASE. jar: 4.3. 13.RELEASE]
  63. at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor. java: 348) [spring-context- 4.3. 13.RELEASE. jar: 4.3. 13.RELEASE]
  64. at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor. java: 151) [spring-context- 4.3. 13.RELEASE. jar: 4.3. 13.RELEASE]
  65. at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor. java: 114) [spring-context- 4.3. 13.RELEASE. jar: 4.3. 13.RELEASE]
  66. at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext. java: 880) [spring-context- 4.3. 13.RELEASE. jar: 4.3. 13.RELEASE]
  67. at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext. java: 144) [spring-boot- 1.5. 9.RELEASE. jar: 1.5. 9.RELEASE]
  68. at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext. java: 546) [spring-context- 4.3. 13.RELEASE. jar: 4.3. 13.RELEASE]
  69. at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext. java: 122) [spring-boot- 1.5. 9.RELEASE. jar: 1.5. 9.RELEASE]
  70. at org.springframework.boot.SpringApplication.refresh(SpringApplication. java: 693) [spring-boot- 1.5. 9.RELEASE. jar: 1.5. 9.RELEASE]
  71. at org.springframework.boot.SpringApplication.refreshContext(SpringApplication. java: 360) [spring-boot- 1.5. 9.RELEASE. jar: 1.5. 9.RELEASE]
  72. at org.springframework.boot.SpringApplication.run(SpringApplication. java: 303) [spring-boot- 1.5. 9.RELEASE. jar: 1.5. 9.RELEASE]
  73. at org.springframework.boot.SpringApplication.run(SpringApplication. java: 1118) [spring-boot- 1.5. 9.RELEASE. jar: 1.5. 9.RELEASE]
  74. at org.springframework.boot.SpringApplication.run(SpringApplication. java: 1107) [spring-boot- 1.5. 9.RELEASE. jar: 1.5. 9.RELEASE]
  75. at org.gradle.ApplicationClient.main(ApplicationClient. java: 11) [bin/ :na]
  76. Caused by: java.net. ConnectException: Connection refused: connect
  77. at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) ~[ na: 1.8. 0_151]
  78. at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl. java: 85) ~[ na: 1.8. 0_151]
  79. at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl. java: 350) ~[ na: 1.8. 0_151]
  80. at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl. java: 206) ~[ na: 1.8. 0_151]
  81. at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl. java: 188) ~[ na: 1.8. 0_151]
  82. at java.net.PlainSocketImpl.connect(PlainSocketImpl. java: 172) ~[ na: 1.8. 0_151]
  83. at java.net.SocksSocketImpl.connect(SocksSocketImpl. java: 392) ~[ na: 1.8. 0_151]
  84. at java.net.Socket.connect(Socket. java: 589) ~[ na: 1.8. 0_151]
  85. at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory. java: 121) ~[httpclient- 4.5. 3. jar: 4.5. 3]
  86. at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator. java: 180) ~[httpclient- 4.5. 3. jar: 4.5. 3]
  87. at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry. java: 144) ~[httpclient- 4.5. 3. jar: 4.5. 3]
  88. at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter. java: 134) ~[httpclient- 4.5. 3. jar: 4.5. 3]
  89. at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector. java: 610) ~[httpclient- 4.5. 3. jar: 4.5. 3]
  90. at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector. java: 445) ~[httpclient- 4.5. 3. jar: 4.5. 3]
  91. at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient. java: 835) ~[httpclient- 4.5. 3. jar: 4.5. 3]
  92. at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient. java: 118) ~[httpclient- 4.5. 3. jar: 4.5. 3]
  93. at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient. java: 56) ~[httpclient- 4.5. 3. jar: 4.5. 3]
  94. at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler. java: 173) ~[jersey-apache-client4- 1.19. 1. jar: 1.19. 1]
  95. ... 68 common frames omitted

通过网上搜索,大部分的回答如下几种

    一、客户端配置文件中关键字需准守驼峰命名方式


   
   
  1. eureka:
  2. client:
  3. serviceUrl:
  4. defaultZone: http: //localhost:21001/eureka/

上述代码中的serviceUrl不应使用service-url,defaultZone不应使用default-zone

    二、eureka服务端应关闭鉴权

        需要在服务器端的配置文件中加入关闭鉴权的代码


   
   
  1. security:
  2. basic:
  3. enabled: false

    三、如果启动eureka服务端报这种错误,则需要禁止服务端作为客户端注册。默认情况下eureka的服务注册中心会将自己作为客户端来尝试注册。

        需要在服务端的配置文件中加入禁止注册的代码


   
   
  1. eureka:
  2. client:
  3. fetch-registry: 'false'
  4. register- with-eureka: 'false'

但是,上述三种方式依然没有解决我遇到的问题,最后发现是因为我客户端的配置文件位置放错了

application.yml文件应直接放在resources目录下:

重新启动服务,OK,成功。

原文地址;https://blog.csdn.net/qq_40460909/article/details/86248390

猜你喜欢

转载自www.cnblogs.com/jpfss/p/11314271.html