首页 游戏 软件 资讯 排行榜 专题
首页
科技数码
Nacos服务注册为何默认临时实例?10个关键原因解析

Nacos服务注册为何默认临时实例?10个关键原因解析

热心网友
84
转载
2026-03-06

在K8s环境中使用Nacos,建议大家保持默认配置就好,尤其不要手动去开启持久化模式。不然你的控制台里很可能留下一堆清理不掉的无用数据。

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

做过Spring Cloud开发的同学,对Nacos肯定不陌生。

大家平时写代码,配置文件里只要配好Nacos地址,程序一启动,服务就自动注册上去了。

但不知道大家有没有留意过一个细节:

当你把服务停掉,或者直接Kill进程,Nacos控制台上的那个服务实例,很快就消失了。它不是变成了红色的不健康状态,而是直接从列表里被删除了。

这在以前用Zookeeper或者早期Dubbo的时候,其实是不太一样的。那时候服务挂了,通常只是显示不健康,节点信息还会保留在那儿。

为什么Nacos要默认把它直接删掉呢?

临时 vs 持久

其实在Nacos的设计里,实例是分两种的:临时实例(Ephemeral)和持久实例(Persistent)。

Spring Cloud Alibaba默认给我们的配置,就是临时实例。

这二者最大的区别,在于谁来维持心跳,以及挂了之后怎么处理。

临时实例(默认)

客户端(你的微服务)主动给Nacos发心跳,默认5秒一次。

如果Nacos一段时间(比如30秒)没收到心跳,它就默认你已经下线了,直接把你从服务列表里剔除。

持久实例

客户端注册一次就不管了。Nacos服务端会主动去探测这个IP通不通。我就在这儿,你不注销我,我就一直在。

如果探测不通,Nacos只会把你标记为不健康,但不会删除你。这条记录会一直留在列表里。

为什么要默认选临时?

很多从传统架构转过来的同学可能会觉得:保留历史记录不好吗?持久化下来,方便我排查问题啊。

在物理机时代,这确实没问题。因为那时候IP是固定的,机器挂了,修好重启,IP还是那个IP。

但现在Docker和K8s的普及,环境变了。

想象一下,你的服务部署在K8s里:

每次发布更新,旧的Pod被销毁,新的Pod被创建。关键点是:新Pod的IP地址通常是变的。

如果你用的是持久实例:

每次重启,Nacos里就会多出几个不健康的旧IP。发布几次之后,你的服务列表里就会堆积成百上千个无效的IP地址。

这不仅浪费存储,还会导致客户端拉取服务列表时,还得花精力去过滤那些已经不存在的节点。

所以Nacos默认选择临时实例,因为在云原生环境下,IP地址是随时可能回收的资源。

服务挂了就是挂了,直接清理掉,给新IP腾位置,保持服务列表的干净。

深层原因:CAP的取舍

除了IP变动,还有一个更核心的原因,涉及分布式系统的CAP理论。

持久实例(CP模式)

因为它要求数据可靠,Nacos内部通常走Raft协议。

Raft是强一致性的,这意味着如果Nacos集群里的Leader挂了,需要重新选举。在选举期间,整个注册中心是不可写的。

对于高频上下线的微服务来说,因为网络抖动就导致服务注册不上,这是很难接受的。

临时实例(AP模式)

它走的是Nacos自研的Distro协议,它的逻辑是:高可用大于强一致。

即使集群之间数据还没完全同步,只要能服务注册上来,能让别人发现你,不报错,比什么都强。

什么时候该用持久实例?

持久实例它主要适用的场景,是那些IP不怎么变、且极其重要的基础设施,比如数据库MySQL、Redis。

有时候我们希望把MySQL也注册到Nacos里,让微服务去发现数据库的地址。

因为数据库通常是固定的,即使它暂时挂了,我们也不希望它从列表里消失。我们希望它只是显示异常,等修好了,IP还是那个IP,业务能自动恢复。

说在最后

回到最初的问题:为什么默认是临时实例?

因为在现在的微服务架构里,活着比记住更重要。

微服务应用:是流动的资源,用临时实例(AP模式)。挂了就清理,保持服务列表的有效性,别让客户端调用到死节点。

数据库/重资产:是固定的资源,用持久实例(CP模式)。挂了保留记录,方便运维排查。

大家在K8s环境下用Nacos,建议就保持默认配置,不要手动去开持久化模式,否则你的控制台里可能会留下一堆清理不掉的无用数据。

来源:https://www.51cto.com/article/837447.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

Nacos服务注册为何默认临时实例?10个关键原因解析
科技数码
Nacos服务注册为何默认临时实例?10个关键原因解析

大家在 K8s 环境下用 Nacos,建议就保持默认配置,不要手动去开持久化模式,否则你的控制台里可能会留下一堆清理不掉的无效数据。 做 Spring Cloud 开发的同学,对 Nacos 肯定不

热心网友
03.06
Nacos配置错误如何导致线上支付系统崩溃
科技数码
Nacos配置错误如何导致线上支付系统崩溃

Nacos 配置中心的所有配置实例(即配置文件)默认都是持久化的,根本不存在临时配置的概念,所谓的动态更新也和临时无关。 节前上线出问题,线上灰度发布后部分用户反馈付款后订单状态不更新,支付服务的失

热心网友
01.15

最新APP

暗黑之地
暗黑之地
角色扮演 03-28
你比我猜
你比我猜
休闲益智 03-26
锦绣商铺
锦绣商铺
模拟经营 03-26
儿童画画
儿童画画
休闲益智 03-25
疯狂猜词
疯狂猜词
休闲益智 03-25

热门推荐

苹果18 Pro屏幕盖板偷跑:灵动岛缩水实锤
iphone
苹果18 Pro屏幕盖板偷跑:灵动岛缩水实锤

3月28日消息,iPhone 18 Pro的屏幕盖板在社交平台上意外泄露。与上一代产品相比,该机最直观的改变莫过于灵动岛面积的显著缩小。根据博主的最新爆料,iPhone 18 Pro的灵动岛挖孔区域

热心网友
03.28
Excel漏斗图制作方法:5步搞定销售转化率分析
电脑教程
Excel漏斗图制作方法:5步搞定销售转化率分析

漏斗图是Excel中展示销售流程各阶段转化率变化的专用图表。方法包括:一、Excel 2016+内置漏斗图;二、条形图模拟(全版本兼容);三、Power BI嵌入(高交互);四、条

热心网友
03.28
Jungle Scout报警设置教程:避免库存风险,精准监控竞品
手机教程
Jungle Scout报警设置教程:避免库存风险,精准监控竞品

在电商运营中,及时掌握产品动态至关重要,而junglescout的产品监控警报功能就能帮您实现这一点。下面就为您带来入门指南。一、开启警报功能首先,登录您的junglescout账

热心网友
03.28
星穹铁道火主配队攻略:四套高胜率阵容推荐
游戏攻略
星穹铁道火主配队攻略:四套高胜率阵容推荐

《崩坏:星穹铁道》火主配队推荐:推荐一为火主+希儿+布洛妮娅+停云,火主承伤破盾,希儿主C爆发,布洛妮娅拉条增伤,停云回能加攻,适合BOSS战与高难副本。推荐二为火主+艾丝妲+青雀

热心网友
03.28
《你好1983》:夏梓玉与王建华的隐秘纠葛及其重生之谜
娱乐
《你好1983》:夏梓玉与王建华的隐秘纠葛及其重生之谜

从杜兆辉那里,夏晓兰知道堂姐夏子玉这几年的遭遇。成了逃犯后,夏子玉靠着那张介绍信逃到盛城,花光所有积蓄偷渡去港岛。因为不会说粤语,又没有身份,根本找不到工作。在地头蛇的连哄带骗下,夏子玉成为港岛街头

热心网友
03.28