Eureka中的常见问题
服务注册慢#
默认情况下,服务注册到Eureka Server的过程较慢。SpringCloud官方文档中给出了详细的原因
大致含义:服务的注册涉及到心跳,默认心跳间隔为30s。在实例、服务器、客户端都在本地缓存中具有相同的元数据之前,服务不可用于客户端发现(所以可能需要3次心跳)。可以通过配置eureka.instance.leaseRenewalIntervalInSeconds (心跳频率)加快客户端连接到其他服务的过程。在生产中,最好坚持使用默认值,因为在服务器内部有一些计算,他们对续约做出假设。
服务节点剔除问题#
默认情况下,由于Eureka Server剔除失效服务间隔时间为90s且存在自我保护的机制。所以不能有效而迅速的剔除失效节点,这对开发或测试会造成困扰。解决方案如下:
Eureka Server:#
配置关闭自我保护,设置剔除无效节点的时间间隔
eureka: instance: hostname: eureka1 client: service-url: defaultZone: http://eureka2:8762/eureka server: enable-self-preservation: false #关闭自我保护 eviction-interval-timer-in-ms: 4000 #剔除时间间隔,单位:毫秒
Eureka Client:#
配置开启健康检查,并设置续约时间
eureka: client: healthcheck: true #开启健康检查(依赖spring-boot-actuator) serviceUrl: defaultZone: http://eureka1:8761/eureka/,http://eureka1:8761/eureka/ instance: preferIpAddress: true lease-expiration-duration-in-seconds: 10 #eureka client发送心跳给server端后,续 约到期时间(默认90秒) lease-renewal-interval-in-seconds: 5 #发送心跳续约间隔
监控页面显示ip#
在Eureka Server的管控台中,显示的服务实例名称默认情况下是微服务定义的名称和端口。为了更好的对所有服务进行定位,微服务注册到Eureka Server的时候可以手动配置示例ID。配置方式如下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)