无法在eureka服务器上注册客户端(类路径中没有安全性)
pom.xml (server)
spring boot version 2.0.3.RELEASE
org.springframework.cloud
spring-cloud-dependencies
Finchley.RELEASE
org.springframework.cloud
spring-cloud-starter-netflix-eureka-server
application.yml (server)
spring:
application:
name: eureka-service
server:
port: 8302
eureka:
client:
register-with-eureka: false
fetch-registry: false
server:
wait-time-in-ms-when-sync-empty: 0
The eureka server started fine and can be accessed at http://localhost:8302/
pom.xml (client)
spring boot version 2.0.3.RELEASE
org.springframework.cloud
spring-cloud-dependencies
Finchley.RELEASE
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
application.yml (client)
spring:
application:
name: stock-service
server:
port: 8301
eureka:
client:
register-with-eureka: false
fetch-registry: false
service-url:
default-zone: http://localhost:8302/
instance:
hostname: localhost
运行客户端应用程序时,获取以下堆栈跟踪
2018-07-09 13:42:40.279信息265144 --- [trap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver:通过配置解决eureka端点 2018-07-09 13:42:50.123信息265144--[freshExecutor-0] com.netflix.discovery.DiscoveryClient:禁用增量属性:false 2018-07-09 13:42:50.123 INFO 265144 --- [freshExecutor-0] com.netflix.discovery.DiscoveryClient:单个vip注册表刷新属性:null 2018-07-09 13:42:50.123信息265144-[freshExecutor-0] com.netflix.discovery.DiscoveryClient:强制完整注册表提取:false 2018-07-09 13:42:50.123 INFO 265144 --- [freshExecutor-0] com.netflix.discovery.DiscoveryClient:应用程序为null:false 2018-07-09 13:42:50.123 INFO 265144 --- [freshExecutor-0] com.netflix.discovery.DiscoveryClient:已注册的应用程序大小为零:true 2018-07-09 13:42:50.123 INFO 265144 --- [freshExecutor-0] com.netflix.discovery.DiscoveryClient:应用程序版本为-1:true 2018-07-09 13:42:50.123信息265144 --- [freshExecutor-0] com.netflix.discovery.DiscoveryClient:从eureka服务器获取所有实例注册表信息 2018-07-09 13:42:52.128错误265144-[freshExecutor-0] c.n.d.s.t.d.RedirectingEurekaHttpClient:请求执行错误
com.sun.jersey.api.client.ClientHandlerException:java.net.ConnectException:拒绝连接:connect 在com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:187)〜[jersey-apache-client4-1.19.1.jar:1.19.1] 在com.sun.jersey.api.client.filter.GZIPContentEncodingFilter.handle(GZIPContentEncodingFilter.java:123)〜[jersey-client-1.19.1.jar:1.19.1] 在com.netflix.discovery.EurekaIdentityHeaderFilter.handle(EurekaIdentityHeaderFilter.java:27)〜[eureka-client-1.9.2.jar:1.9.2] 在com.sun.jersey.api.client.Client.handle(Client.java:652)〜[jersey-client-1.19.1.jar:1.19.1] 在com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)〜[jersey-client-1.19.1.jar:1.19.1] 在com.sun.jersey.api.client.WebResource.access $ 200(WebResource.java:74)〜[jersey-client-1.19.1.jar:1.19.1] 在com.sun.jersey.api.client.WebResource $ Builder.get(WebResource.java:509)〜[jersey-client-1.19.1.jar:1.19.1] 在com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient.getApplicationsInternal(AbstractJerseyEurekaHttpClient.java:194)〜[eureka-client-1.9.2.jar:1.9.2] 在com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient.getApplications(AbstractJerseyEurekaHttpClient.java:165)〜[eureka-client-1.9.2.jar:1.9.2] 在com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator $ 6.execute(EurekaHttpClientDecorator.java:137)[eureka-client-1.9.2.jar:1.9.2] 在com.netflix.discovery.shared.transport.decorator.MetricsCollectingEurekaHttpClient.execute(MetricsCollectingEurekaHttpClient.java:73)〜[eureka-client-1.9.2.jar:1.9.2] 在com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getApplications(EurekaHttpClientDecorator.java:134)[eureka-client-1.9.2.jar:1.9.2] 在com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator $ 6.execute(EurekaHttpClientDecorator.java:137)[eureka-client-1.9.2.jar:1.9.2] 在com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient.executeOnNewServer(RedirectingEurekaHttpClient.java:118)〜[eureka-client-1.9.2.jar:1.9.2] 在com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient.execute(RedirectingEurekaHttpClient.java:79)〜[eureka-client-1.9.2.jar:1.9.2] 在com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getApplications(EurekaHttpClientDecorator.java:134)[eureka-client-1.9.2.jar:1.9.2] 在com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator $ 6.execute(EurekaHttpClientDecorator.java:137)[eureka-client-1.9.2.jar:1.9.2] 在com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:120)[eureka-client-1.9.2.jar:1.9.2] 在com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getApplications(EurekaHttpClientDecorator.java:134)[eureka-client-1.9.2.jar:1.9.2] 在com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator $ 6.execute(EurekaHttpClientDecorator.java:137)[eureka-client-1.9.2.jar:1.9.2] 在com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77)[eureka-client-1.9.2.jar:1.9.2] 在com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getApplications(EurekaHttpClientDecorator.java:134)[eureka-client-1.9.2.jar:1.9.2] 在com.netflix.discovery.DiscoveryClient.getAndStoreFullRegistry(DiscoveryClient.java:1051)[eureka-client-1.9.2.jar:1.9.2] 在com.netflix.discovery.DiscoveryClient.fetchRegistry(DiscoveryClient.java:965)[eureka-client-1.9.2.jar:1.9.2] 在com.netflix.discovery.DiscoveryClient.refreshRegistry(DiscoveryClient.java:1471)[eureka-client-1.9.2.jar:1.9.2] 在com.netflix.discovery.DiscoveryClient $ CacheRefreshThread.run(DiscoveryClient.java:1438)[eureka-client-1.9.2.jar:1.9.2] 在java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511)[na:1.8.0_171] 在java.util.concurrent.FutureTask.run(FutureTask.java:266)[na:1.8.0_171] 在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)[na:1.8.0_171] 在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624)[na:1.8.0_171] 在java.lang.Thread.run(Thread.java:748)[na:1.8.0_171] 引起原因:java.net.ConnectException:连接被拒绝:connect 在java.net.DualStackPlainSocketImpl.waitForConnect(原生方法)〜[na:1.8.0_171] 在java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)〜[na:1.8.0_171] 在java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)〜[na:1.8.0_171] 在java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)〜[na:1.8.0_171] 在java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)〜[na:1.8.0_171] 在java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)〜[na:1.8.0_171] 在java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)〜[na:1.8.0_171] 在java.net.Socket.connect(Socket.java:589)〜[na:1.8.0_171] 在org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:121)〜[httpclient-4.5.5.jar:4.5.5] 在org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)〜[httpclient-4.5.5.jar:4.5.5] 在org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:144)〜[httpclient-4.5.5.jar:4.5.5] 在org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:134)〜[httpclient-4.5.5.jar:4.5.5] 在org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:610)〜[httpclient-4.5.5.jar:4.5.5] 在org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:445)〜[httpclient-4.5.5.jar:4.5.5] 在org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:835)〜[httpclient-4.5.5.jar:4.5.5] 在org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:118)〜[httpclient-4.5.5.jar:4.5.5] 在org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)〜[httpclient-4.5.5.jar:4.5.5] 在com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:173)〜[jersey-apache-client4-1.19.1.jar:1.19.1] ...省略了30个普通框架
2018-07-09 13:42:52.128警告265144 --- [freshExecutor-0] c.n.d.s.t.d.RetryableEurekaHttpClient:请求执行失败并显示消息:java.net.ConnectException:拒绝连接:connect 2018-07-09 13:42:52.129错误265144-[freshExecutor-0] com.netflix.discovery.DiscoveryClient:DiscoveryClient_STOCK-SERVICE / del1-lhp-n02547.synapse.com:库存服务:8301-无法刷新其缓存! status =无法在任何已知服务器上执行请求
com.netflix.discovery.shared.transport.TransportException:无法在任何已知服务器上执行请求 在com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:112)〜[eureka-client-1.9.2.jar:1.9.2] 在com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getApplications(EurekaHttpClientDecorator.java:134)〜[eureka-client-1.9.2.jar:1.9.2] 在com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator $ 6.execute(EurekaHttpClientDecorator.java:137)〜[eureka-client-1.9.2.jar:1.9.2] 在com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77)〜[eureka-client-1.9.2.jar:1.9.2] 在com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getApplications(EurekaHttpClientDecorator.java:134)〜[eureka-client-1.9.2.jar:1.9.2] 在com.netflix.discovery.DiscoveryClient.getAndStoreFullRegistry(DiscoveryClient.java:1051)[eureka-client-1.9.2.jar:1.9.2] 在com.netflix.discovery.DiscoveryClient.fetchRegistry(DiscoveryClient.java:965)[eureka-client-1.9.2.jar:1.9.2] 在com.netflix.discovery.DiscoveryClient.refreshRegistry(DiscoveryClient.java:1471)[eureka-client-1.9.2.jar:1.9.2] 在com.netflix.discovery.DiscoveryClient $ CacheRefreshThread.run(DiscoveryClient.java:1438)[eureka-client-1.9.2.jar:1.9.2] 在java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511)[na:1.8.0_171] 在java.util.concurrent.FutureTask.run(FutureTask.java:266)[na:1.8.0_171] 在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)[na:1.8.0_171] 在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624)[na:1.8.0_171] 在java.lang.Thread.run(Thread.java:748)[na:1.8.0_171]
答案 0 :(得分:0)
问题出在您的客户中,即库存服务的 application.yml
。您需要按此处所述更改它。
第1步:从application.yml中删除以下属性
eureka:
client:
register-with-eureka: false
fetch-registry: false
service-url:
default-zone: http://localhost:8302/
实例: 主机名:localhost
第2步:将此添加到application.yml
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8302/eureka/
这可以解决您的问题。
答案 1 :(得分:0)
您还应该在客户端application.yml文件中将以下属性从false更改为true-
尤里卡: 客户: 向eureka注册:是
在您的客户端配置中,它似乎是 false 。