Eureka属性配置
首先是入门时的配置:
server:
port: 8000
eureka:
instance:
hostname: localhost # 主机名
client:
service-url:
defaultZone: http://localhost:8761/eureka # eureka服务端地址,将来客户端使用该地址和eureka进行通信
spring:
application:
name: eureka-provider # 设置当前应用的名称。将来会在eureka中Application显示。将来需要使用该名称来获取路径
这里时provider的配置 ,之前在Consumei的Controller里 输出了两个东西
结果是
当我们在配置里加了一行
prefer-ip-address: true
server:
port: 8000
eureka:
instance:
hostname: localhost # 主机名
prefer-ip-address: true #将当前实例的ip注册到Eureka Server里 默认是falser 也即是主机名
client:
service-url:
defaultZone: http://localhost:8761/eureka
spring:
application:
name: eureka-provider
然后可以看到输出就变了
当我们在配置里加了一行 也就是说我们向Eureka里注册的就不是上面那个地址 就变成下面这个地址了
ip-address: 127.0.0.1
然后输出就变成

再加一行配置
instance-id: ${eureka.instance.ip-address}:${spring.application.name}:${server.port} #3部分:ip:应用名称: 端口 设置实例的ip web控制台显示的id
配置了之后
二:Eureka Server 相关属性
在Instance属性里 有两个属性
自我保护机制:每隔30发送,然后得到回应,90秒内还没得到回应,就剔除,如果开启了自我保护机制,则不会剔除
清理间隔:每隔60秒扫描一次,有问题就会剔除掉
简单说就是 我期望一分钟有10次心跳包发送,实际上一分钟才4此;当上面的值比下面的大,就会开启自我保护机制。
实际续约值=开启的服务数量*2(30秒一次,一分钟两次,多少秒一次是可以通过我们设置的发送心跳间隔来改变的);
期望续约值=(n(也就是他认为当前有几个服务)+1 )*2*0.85 去掉小数 就得到了
因为自我保护机制默认是开启的,但是开发中我们希望把停掉的业务给剔除掉,所有给他设置为false,当Eureka Server这两个server属性开启后,Eureka Client 的服务就要 设置心跳发送间隔和清理间隔的时长
当关掉了自我保护机制后 就变成如下
下面进行演示
在Eureka Server 加上对应配置
server:
port: 8761
# eureka 配置
# eureka 一共有4部分 配置
# 1. dashboard:eureka的web控制台配置
# 2. server:eureka的服务端配置
# 3. client:eureka的客户端配置
# 4. instance:eureka的实例配置
eureka:
instance:
hostname: localhost # 主机名
client:
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka # eureka服务端地址,将来客户端使用该地址和eureka进行通信
register-with-eureka: false # 是否将自己的路径 注册到eureka上。eureka server 不需要的,eureka provider client 需要
fetch-registry: false # 是否需要从eureka中抓取路径。eureka server 不需要的,eureka consumer client 需要
server:
enable-self-preservation: false #关闭自我保护机制
eviction-interval-timer-in-ms: 3000 #检查服务的时间间隔
在Eureka Client 加上对应配置
server:
port: 8000
eureka:
instance:
hostname: localhost # 主机名
prefer-ip-address: true #将当前实例的ip注册到Eu热卡Server里
ip-address: 127.0.0.1 #设置当前实例的ip
instance-id: ${eureka.instance.ip-address}:${spring.application.name}:${server.port} #3部分:ip:应用名称: 端口 设置实例的ip web控制台显示的id
lease-expiration-duration-in-seconds: 3 #每隔3秒一次发送心跳包
lease-renewal-interval-in-seconds: 9 #如果9秒没发 就剔除服务
client:
service-url:
defaultZone: http://localhost:8761/eureka # eureka服务端地址,将来客户端使用该地址和eureka进行通信
spring:
application:
name: eureka-provider # 设置当前应用的名称。将来会在eureka中Application显示。将来需要使用该名称来获取路径
启动演示效果
当我们把server client服务停掉后 9秒后就会剔除服务
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)