复现
通过如下步骤可以复现:
期望
简介明了地描述你希望正常情况下应该发生什么
截图
如果可以,附上截图来描述你的问题
额外的细节和日志- 版本:
- 错误日志
- 配置:
- 平台和操作系统
复现
通过如下步骤可以复现:
期望
简介明了地描述你希望正常情况下应该发生什么
截图
如果可以,附上截图来描述你的问题
额外的细节和日志您遇到的问题可能是由于在application-kubernetes.properties
文件中的配置设置。在这个文件中,eureka.client.enabled
和spring.cloud.discovery.enabled
都被设置为false
。
这些设置禁用了Eureka服务发现和Spring Cloud Discovery。这意味着即使您的服务正在运行,它们也不会被发现并注册到Eureka,因此它们不会在8080页面上显示。
要解决这个问题,您应该通过将这些属性设置为true
来启用Eureka服务发现和Spring Cloud Discovery:
eureka.client.enabled=true
spring.cloud.discovery.enabled=true
做了这些更改后,您的服务应该能被Eureka发现并在8080页面上显示。
在您分享的上下文中,Apollo 1.5.0版本确实支持在Kubernetes部署中使用Eureka进行服务发现。然而,需要注意的是,eureka.service.url
配置不适用于基于Kubernetes的原生服务发现场景。apollo-configservice和apollo-adminservice都需要注册到Eureka服务,所以需要配置Eureka服务地址。eureka.instance
和eureka.server
配置表明Eureka被用于服务发现。然而,eureka.client.fetch-registry
和eureka.client.registerWithEureka
属性被设置为false
,这意味着这个服务不会获取Eureka注册表,也不会将自己注册到Eureka。这些设置可以根据您的部署需求进行更改。此外,eureka.client.serviceUrl.defaultZone
被设置为http://${eureka.instance.hostname}:8080/eureka/
,这将被ApolloConfigDB.ServerConfig或系统属性中的eureka.service.url
设置覆盖。
application-kubernetes.properties
文件中的eureka.client.enabled
和spring.cloud.discovery.enabled
属性用于控制Spring Cloud应用中的服务发现机制。
eureka.client.enabled
:此属性用于启用或禁用Eureka客户端。Eureka是Netflix的一种服务发现工具,通常用于微服务架构。当此属性设置为false
时,意味着Eureka客户端被禁用,应用程序不会将自己注册到Eureka服务器,也不会试图通过Eureka服务器发现其他服务。
spring.cloud.discovery.enabled
:此属性是Spring Cloud DiscoveryClient实现的一般开关。当此属性设置为false
时,意味着DiscoveryClient被禁用,应用程序不会试图发现其他服务,无论使用的是哪种特定的发现服务(Eureka,Consul等)。
在您分享的上下文中,这两个属性都被设置为false
,这意味着应用程序没有使用任何服务发现机制。这在Kubernetes环境中很常见,因为服务发现通常由Kubernetes本身处理,而不是由各个应用程序处理。此外,apollo.eureka.server.enabled
属性也被设置为false
,表明Apollo配置管理系统没有使用自己的Eureka服务器进行服务发现。
eureka.service.url 需要填写所有 eureka server 的地址从而可以实现数据同步,这个是 eureka 的数据同步机制决定的
我这边使用apollo 有个发现 发现 apollo-admin-service 已经挂了 但是[eureka] 上面还是显示服务还存在 感觉 eureka拆除不健康的服务会慢吗?
DiscoveryClient-HeartbeatExecutor-0 健康检查不过但是还在上报up
eureka 的默认剔除时间是 90 秒,可以自行调整
我在想我这个和自动剔除是不是有关系? 我这个服务因为 https://github.com/apolloconfig/apollo/issues/3405 oom 但是我一直看了 这个上报 还是一直是up 是不是不应该服务上报的up状态 应该server主动检查 还有我看了一下portal 代码看起来刷新 admin-service也很慢,最少得5min(因为eureka 剔除服务比较慢 默认90秒) private static final long NORMAL_REFRESH_INTERVAL = 5 60 1000;
上报的状态是由 AdminServiceHealthIndicator 定义的