Nacos的心跳机制

心跳机制的目的

1. 是表示当前微服务模块运行状态正常的手段

2. 是表示当前微服务模块和Nacos保持沟通和交换信息的机制

默认情况下,服务启动开始每隔5秒会想Nacos发送一个"心跳包",这个心跳包

中包含了当前服务的基本信息

Nacos接收到这个心跳包,首先检查当前服务在不在注册列表中,如果不在

按新服务的业务进行注册,如果在,表示当前这个服务是健康状态

如果一个服务连续3次心跳(默认15秒)没有和Nacos进行信息的交互,就会将

当前服务标记为不健康的状态

如果一个服务连续6此心跳(默认30秒)没有和Nacos进行信息的交互,Nacos会将这个服务从注册列表中剔除

这些时间可以通过配置修改.

实例类型分类

实际上Nacos的服务类型还有分类

  • 临时实例(默认)
  • 持久化实例(永久实例)

默认每个服务都是临时实例

如果想标记一个服务为永久实例,可以通过在application配置来实现

spring:
  cloud:
    nacos:
      # ephemeral设置当前项目启动时注册到nacos的类型
      true(默认):临时实例 false:永久实例
      discovery:
        ephemeral: false

  

持久化实例启动时会向Nacos注册,Nacos会对这个实例进行持久化处理

心跳包的规则和临时实例一致,只是不会将该服务从列表中剔除

一般情况下,我们创建的服务都是临时实例

只有项目的主干业务才会设置为永久实例

posted @ 2023-02-28 02:25  青山与妙高  阅读(998)  评论(0编辑  收藏  举报