我一直在与我的一个Spring Cloud Eureka客户发生间歇性问题,但其他人都没有。当我开始我的" NCLSEARCHSERVICE"它注册了Eureka,show" UP"在尤里卡约30秒到一分钟,然后取消注册。以下是来自Eureka服务器的日志,显示它注册了我的所有其他服务,但未能注册我的搜索服务,因为" Lease未注册"。很抱歉日志文件复制/粘贴格式不佳。
2015-10-01 09:48:55.144 WARN 6470 --- [nio-8761-exec-4] com.netflix.eureka.InstanceRegistry : DS: Registry: lease doesn't
存在,注册资源:CONFIGSERVICE - 172.18.100.120 2015-10-01 09:48:55.145警告6470 --- [nio-8761-exec-4] c.n.eureka.resources.InstanceResource:未找到(续订): CONFIGSERVICE - 172.18.100.120 2015-10-01 09:48:55.147 WARN 6470 --- [nio-8761-exec-2] com.netflix.eureka.InstanceRegistry:DS: 注册表:租约不存在,注册资源:ZUULSERVER - eXploit-Zuul 2015-10-01 09:48:55.147 WARN 6470 --- [nio-8761-exec-2] c.n.eureka.resources.InstanceResource:未找到(续订): ZUULSERVER - eXploit-Zuul 2015-10-01 09:48:55.419 INFO 6470 --- [nio-8761-exec-7] com.netflix.eureka.InstanceRegistry: 注册实例ID 172.18.100.120,状态为2015-10-01 09:48:55.423 INFO 6470 --- [nio-8761-exec-8] com.netflix.eureka.InstanceRegistry:已注册的实例ID eXploit-Zuul,状态UP 2015-10-01 09:48:55.778 INFO 6470 --- [nio-8761-exec-9] com.netflix.eureka.InstanceRegistry: 注册实例ID 172.18.100.120,状态为2015-10-01 09:48:55.809 INFO 6470 --- [io-8761-exec-10] com.netflix.eureka.InstanceRegistry:已注册的实例ID eXploit-Zuul,状态UP 2015-10-01 09:49:05.416 WARN 6470 --- [nio-8761-exec-3] com.netflix.eureka.InstanceRegistry:DS: 注册表:租约不存在,注册资源:GEOSERVER - 172.18.100.155 2015-10-01 09:49:05.418 WARN 6470 --- [nio-8761-exec-3] c.n.eureka.resources.InstanceResource:Not Found (续订):GEOSERVER - 172.18.100.155 2015-10-01 09:49:05.441 INFO 6470 --- [nio-8761-exec-5] com.netflix.eureka.InstanceRegistry:已注册实例ID 172.18.100.155,状态为STARTING 2015-10-01 09:49:05.607 INFO 6470 --- [nio-8761-exec-4] com.netflix.eureka.InstanceRegistry:已注册的实例ID 172.18.100.155,状态为STARTING 2015-10-01 09:49:05.948 INFO 6470 --- [nio-8761-exec-8] com.netflix.eureka.InstanceRegistry:注册实例ID 172.18.100.197,状态为UP 2015-10 -01 09:49:06.107 INFO 6470 --- [nio-8761-exec-9] com.netflix.eureka.InstanceRegistry:已注册的实例ID 172.18.100.197状态UP 2015-10-01 09:49:11.175 WARN 6470 --- [io-8761-exec-10] c.n.eureka.resources.InstanceResource:时间到 sync,因为上一个脏时间戳不同 - ReplicationInstance id :172.18.100.155,注册地址:1443651207024收件人:1443651408538 复制:false 2015-10-01 09:49:11.197 INFO 6470 --- [nio-8761-exec-3] com.netflix.eureka.InstanceRegistry: 注册实例ID 172.18.100.155,状态为2015-10-01 09:49:11.562警告6470 --- [nio-8761-exec-5] c.n.eureka.resources.InstanceResource:同步的时间,因为 最后一个脏时间戳不同 - ReplicationInstance id: 172.18.100.155,注册时间:1443651408538传入:1443651207024复制:true 2015-10-01 09:49:11.607 INFO 6470 --- [nio-8761-exec-4] com.netflix.eureka.InstanceRegistry: 注册实例ID 172.18.100.155,状态为2015-10-01 09:50:03.859 INFO 6470 --- [nio-8761-exec-6] c.n.eureka.resources.InstanceResource:找到(取消): NCLSEARCHSERVICE - 172.18.100.197 2015-10-01 09:50:03.870 INFO 6470 --- [io-8761-exec-10] com.netflix.eureka.InstanceRegistry:注册实例ID 172.18.100.197,状态为UP 2015-10-01 09:50:04.120 INFO 6470 --- [nio-8761-exec-2] com.netflix.eureka.InstanceRegistry:已注册的实例ID 172.18.100.197状态UP 2015-10-01 09:50:04.130 INFO 6470 --- [nio-8761-exec-5] c.n.eureka.resources.InstanceResource:Found (取消):NCLSEARCHSERVICE - 172.18.100.197 2015-10-01 09:50:04.745 WARN 6470 --- [nio-8761-exec-3] com.netflix.eureka.InstanceRegistry
:DS:注册表:取消失败,因为租约未注册: NCLSEARCHSERVICE:172.18.100.197
我的搜索服务的日志似乎没有显示任何有趣的内容,只是它在Eureka中看到它以前已经关闭,现在它将状态更改为:
2015-09-30 17:59:14.164 INFO 9056 --- [主要] c.n.e.EurekaDiscoveryClientConfiguration:取消注册应用程序 nclSearchService与eureka,状态为DOWN 2015-09-30 17:59:14.164 INFO 9056 --- [main] com.netflix.discovery.DiscoveryClient :看到本地状态更改事件StatusChangeEvent [current = DOWN, previous = UP] 2015-09-30 17:59:14.208 INFO 9056 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient: DiscoveryClient_NCLSEARCHSERVICE / 172.18.100.197:注册 服务... 2015-09-30 17:59:14.217 INFO 9056 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient: DiscoveryClient_NCLSEARCHSERVICE / 172.18.100.197 - 注册状态: 204 2015-09-30 17:59:14.218 INFO 9056 --- [主要] com.netflix.discovery.DiscoveryClient: DiscoveryClient_NCLSEARCHSERVICE / 172.18.100.197 - 取消注册状态: 200 2015-09-30 17:59:14.218 INFO 9056 --- [主要] c.n.e.EurekaDiscoveryClientConfiguration:注册应用程序 带有状态UP的eureka的nclSearchService
我的配置现在很乱,因为我一直在尝试不同的值和配置,但这是我正在使用的基本值:
spring:
cloud:
config:
# uri: http://${CONFIG_SERVER_URL:172.18.100.120:8888}
discovery:
enabled: true
serviceId: CONFIGSERVICE
application:
name: nclSearchService
eureka:
client:
enable-self-preservation: false
# registerWithEureka: true
# fetchRegistry: true
serviceUrl:
defaultZone: http://172.18.100.120:8761/eureka/
# healthcheck:
# enabled: true
instance:
leaseRenewalIntervalInSeconds: 30
# items below are listed in the config server
service:
name: nclSearchService
security:
sessions: NEVER
#instance:
# preferIpAddress: true
#server:
# port: 8080
# contextPath: /
您可以看到我还从配置服务动态加载配置,但这只是加载特定于应用程序的变量。
过去,如果我随机乱搞我的搜索服务上的配置,我可以让它在Eureka上稳定下来。但随后问题重新出现,我永远无法确定究竟是什么导致它。这似乎是Eureka及其实例注册表的一个问题,但我无法弄清楚如何解决它。
更新1: NCLSEARCHSERVICE使用spring-boot-dependencies 1.2.5.RELEASE和spring-cloud-netflix 1.1.0.M1。我的Eureka服务器使用相同版本的spring boot依赖项,但是spring-cloud-netflix 1.0.3.RELEASE。我尝试更新搜索服务,看看是否对我的问题有任何影响。如果建议所有服务使用相同的版本,我可以向上/向下移动版本。
我的故障排除中只有一次我尝试在我的搜索服务上调用/刷新。如果我没记错的话,它会经历相同的暂时显示过程,然后再次从注册表中删除。
更新2: 我可能已经缩小了问题...我在与端口8761上运行的Eureka服务器相同的VM上运行了端口8888上的配置服务器。我在搜索服务中禁用了动态配置并移动了nclSearchService.yml的内容从我的搜索服务上的配置服务器到application.yml。搜索服务已在Eureka注册,并已稳定约10分钟。
这很奇怪,因为即使我的搜索服务不再配置为使用配置服务,配置服务仍然已部署并运行。此外,即使搜索服务已取消注册,您也可以在日志中看到它已成功从配置服务中提取nclSearchService.yml文件,并且它将一直启动并可用于从中提取的属性。配置服务。
不确定这是什么意思:))