nacos做为注册中心纳管其下边的服务模块,然后我们有时候关闭服务的时候发现客户端还能继续访问该服务,这是因为nacos默认的心跳检测时间为30s,所以需要等到30s之后才会剔除不可用服务。
修改nacos的心跳检测时间,在注册的服务中配置
spring:
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
metadata:
preserved.heart.beat.interval: 1000
preserved.heart.beat.timeout: 3000
preserved.ip.delete.timeout: 3000
这就ok了
如果网关使用的事gateway,gateway还要想注册中心拉取服务列表,如果时间很长,也会造成调用不可用服务。一般我们也将拉取服务列表的时间调整一下。具体数字要看实际生产需要
#ribbon config,Interval to refresh the server list from the source
ribbon:
ServerListRefreshInterval: 3000
步骤1可能需要花3秒中更新实例,步骤2定时拉取nacos最新实例需要最快3秒,因此加起来,可能需要花费最多6秒,能使最新的服务生效