返回顶部
首页 > 资讯 > 精选 >Nacos心跳时间配置及服务快速上下线的方法是什么
  • 919
分享到

Nacos心跳时间配置及服务快速上下线的方法是什么

2023-07-05 13:07:52 919人浏览 泡泡鱼
摘要

今天小编给大家分享一下Nacos心跳时间配置及服务快速上下线的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Nac

今天小编给大家分享一下Nacos心跳时间配置及服务快速上下线的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

    Nacos心跳时间配置及服务快速上下线

    Nacos默认心跳时间是30秒,不太满足正式环境需要,需要调整心跳时间更短,让线上服务上下线能快速感知。

    1.修改微服务的nacos的心跳配置时间

    preserved.heart.beat.interval: 1000 #该实例在客户端上报心跳的间隔时间。(单位:毫秒)preserved.heart.beat.timeout: 3000 #该实例在不发送心跳后,从健康到不健康的时间。(单位:毫秒)preserved.ip.delete.timeout: 3000 #该实例在不发送心跳后,被nacos下掉该实例的时间。(单位:毫秒)

    如我的一个微服务tower-system的配置如下

    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

    2.修改spring cloud的gateway的ribbion配置

    修改了步骤1中的配置后,nacos的控制台,能保证微服务3秒内能快速响应上下线,但我们的访问是通过gateway统一访问的,gateway集成了ribbion的负载均衡功能,其默认是定时一定的时间间隔去nacos拉取最新的服务实例数据到本地缓存,因此,仅仅修改nacos的配置,还是不能保证能及时的进行服务上下线,需要设置ribbon.ServerListRefreshInterval,增加拉取nacos中最新服务实例的频率,如下`

    #ribbon config,Interval to refresh the server list from the source ribbon:   ServerListRefreshInterval: 3000

    步骤1可能需要花3秒中更新实例,步骤2定时拉取nacos最新实例需要最快3秒,因此加起来,可能需要花费最多6秒,能使最新的服务生效

    Nacos心跳机制

    Nacos内部注册的服务分为两大类:

    • 临时实例(默认)

    • 持久化实例

    可以通过.yml中设置ephemeral属性来确定服务为临时或永久。

    例如:

    spring:  cloud:    nacos:      discovery:        # 定义nacos运行的路径        server-addr: localhost:8848        # ephemeral 设置当前项目启动时注册到nacos的类型true(默认):临时实例false:永久化实例        ephemeral: true

    临时实例和永久实力的区别:

    临时实例

    默认情况下,启动服务后,每隔5秒会向nacos发送一个"心跳包",这个心跳包中包含了当前服务的基本信息

    Nacos收到这个"心跳包"如果发现这个服务的信息不在注册列表中,就进行注册,如果这个服务的信息在注册列表中就表明这个服务还是健康的

    如果Nacos15秒内没接收到某个服务的心跳包,Nacos会将这个服务标记为不健康的状态

    如果30秒内没有接收到这个服务的心跳包,Nacos会将这个服务从注册列表中剔除

    这些时间都是可以通过配置修改的

    持久化实例(永久实例)

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

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

    各类型使用时机

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

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

    以上就是“Nacos心跳时间配置及服务快速上下线的方法是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

    --结束END--

    本文标题: Nacos心跳时间配置及服务快速上下线的方法是什么

    本文链接: https://lsjlt.com/news/351804.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作