芭比扣了!Nacos中服务删除不了,肿么办?_Java中文社群的博客-CSDN博客


本站和网页 https://blog.csdn.net/sufu1065/article/details/122994934 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

芭比扣了!Nacos中服务删除不了,肿么办?_Java中文社群的博客-CSDN博客
芭比扣了!Nacos中服务删除不了,肿么办?
Java中文社群
于 2022-02-17 07:00:00 发布
1535
收藏
文章标签:
运维
java
面试
数据库
分布式
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sufu1065/article/details/122994934
版权
作者 | 磊哥
来源 | Java中文社群(ID:javacn666)
转载请联系授权(微信ID:GG_Stone)
前两天遇到了一个问题,Nacos 中的永久服务删除不了,折腾了一番,最后还是顺利解决了。以下是原因分析和解决方案,建议先收藏,以备不时之需。
临时实例和持久化实例是 Nacos 1.0.0 中新增了一个特性。临时实例和持久化实例最大的区别是健康检查的方式:临时实例使用客户端主动上报的健康检查模式,而持久化实例使用服务端反向探测的模式。也就是说,如果是临时实例,那么客户端需要主动上报自己的健康状况,而持久化实例需要 Nacos 服务器端反向探测实例的健康状况。
而在这两种实例中,临时实例是可以自动删除非健康实例的,并且当所有的临时实例被删除之后,Nacos 中的服务也会被自动删除,这是临时服务的删除流程。但对于持久化实例来说,就没有那么简单了,因此持久化实例即使是非健康状态,也不会自动删除实例和服务,这个时候就需要我们手动删除服务了。
PS:持久化实例也有另一种叫法,叫做永久实例。
需要注意的是,在 Nacos 2.0 之前,一个服务中的实例既可以是临时实例也可以是持久化实例,但在 Nacos 2.0 时有了⼀些细微的调整。在 Nacos 2.0 之前,一个服务中的实例既可以是临时实例也可以是永久实例会给运维人员带来极大的困惑和运维复杂度。
与此同时,从系统架构来看,⼀个服务同时存在持久化及非持久化实例的场景也是存在⼀定矛盾的。这就导致该能力事实上并未被广泛使用。为了简化 Nacos 的服务数据模型,降低运维人员的复杂度,提升 Nacos 的易用性,在 Nacos 2.0 中将是否持久化的数据抽象至服务级别,且不再允许⼀个服务同时存在持久化实例和非持久化实例,也就是从 Nacos 2.0 之后,临时实例就变成了临时服务,持久化实例就变成了持久化服务,一个服务的整个生命周期只能有一种实例类型。
为什么需要两种服务类型?
以淘宝为例,双十一大促期间,流量会比平常高出很多,此时服务肯定需要增加更多实例来应对高并发,而这些实例在双十一之后就无需继续使用了,采用临时实例比较合适。而对于服务的一些常备实例,则使用永久实例更合适。
问题重现
但持久化服务在手动删除时候会报错,如下图所示:当我们在 Nacos 控制台点击服务的“删除”按钮时,提示“caused: Service DEFAULT_GROUP@@XXX is not empty, can't be delete. Please unregister instance first;”,意思是不能删除,请先注销服务下的实例,于是我们进入服务实例列表,如下图所示:服务实例里面没有注销按钮,只有“下线”按钮,难道在服务的“编辑”页面里面?于是我们又点击编辑按钮,看到如下信息:服务编辑页面还是没有注销按钮,难道要把实例全部“下线”?于是我们尝试将所有的实例“下线”如下图所示:然后再返回服务列表页面,点击“删除”按钮,发现还是原来的提示信息:这可咋整嘞,一顿操作还是删除不了?
解决方案
我们知道除了控制台之外,还可以通过 Nacos SDK 或 OpenAPI 来操作 Nacos,而 OpenAPI 的操作成本是最低的,于是赶紧找出 Nacos 官方的 OpenAPI 文档,看一下如何通过 API 注销服务实例。果然,功夫不负有心人,在官方文档中顺利的找到了注销的 API,如下图所示:
OpenAPI 地址:https://nacos.io/zh-cn/docs/open-api.html
PS:在这里感谢好友@二师兄,提供的思路。
OpenAPI 内容如下:于是照着 API 文档构建了删除命令:
curl -X DELETE 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=spring-cloud-nacos-producer&groupName=DEFAULT_GROUP&namespaceId=public&ip=10.0.24.8&clusterName=DEFAULT&port=8081&ephemeral=false'
以上命令在 Nacos 服务器执行的结果如下图所示:服务器返回了结果“OK”,打开 Nacos 服务实例列表看一下实例是否被正常注销:果然有效果,持久化实例被顺利的注销了,于是使用同样的方法把实例 2 也注销一下,如下图所示:当我把服务下的所有实例都注销之后,再去 Nacos 控制台发现服务也随之消失了,如下图所示:细心一点的朋友会发现,之前的服务并不会立马消失了,而是变成空服务了,要手动切换一下“隐藏空服务”才能展示出来,但有它和没它的效果是一样的了,我们可以创建和它名字相同的临时实例了,这就和删除的效果一样了,如果没有被删除是创建不了临时实例的,所以从逻辑上理解,我们可以认为它已经被删除了。
总结
Nacos 中有两种实例:临时实例和持久化实例(永久实例),在 Nacos 2.0 之后,每个服务中只能保存一种类型的实例,也就是实例类型已经升级成了服务类型了。
对于临时服务来说,无需删除,当临时服务中的所有实例都被删除之后,临时服务也会被自动删除;而永久服务需要先通过 OpenAPI 注销所有的实例,当所有实例被注销之后,服务也被删除了。
是非审之于己,毁誉听之于人,得失安之于数。
公众号:Java中文社群
Java面试合集:https://gitee.com/mydb/interview
往期推荐
Spring Cloud Alibaba Nacos 服务注册与发现功能实现!
2022-02-07
Nacos服务注册与发现的2种实现方法!
2022-02-09
Spring Cloud Alibaba Nacos路由策略之保护阈值!
2022-02-14
求点赞、在看、分享三连
Java中文社群
关注
关注
点赞
收藏
打赏
评论
芭比扣了!Nacos中服务删除不了,肿么办?
作者 | 磊哥来源 | Java中文社群(ID:javacn666)转载请联系授权(微信ID:GG_Stone)前两天遇到了一个问题,Nacos 中的永久服务删除不了,折腾了一番,最后还是...
复制链接
扫一扫
Nacos指南-服务发现:删除服务
JAVA踩坑之路
04-22
3352
删除服务API描述请求类型请求路径请求参数错误编码示例请求示例返回总结
API
描述
删除一个服务,只有当服务下实例数为0时允许删除
请求类型
DELETE
请求路径
/nacos/v1/ns/service
请求参数
名称
类型
是否必选
描述
serviceName
字符串
服务名
groupName
字符串
分组名
namespaceId
字符串
命名空间ID
错误编码
错误代码
描述
语义
400
Bad Request
客户端请求中的语法错
mac关闭nacos
绅士jiejie的博客
06-04
1828
进入bin路径下输入命令sh shutdown.sh
如果还能访问到macos的话,那就找到nacos进程并杀死,步骤如下:
//找到端口8848的进程id
lsof -i:8848
//杀死该进程
kill -9 PID
评论 5
您还未登录,请先
登录
后发表或查看评论
SpringCloud 微服务注册中心 - Nacos高可用.md
03-22
SpringCloud 微服务注册中心 - Nacos高可用.md
nacos 注册非临时实例启动失败 is ephemeral service, can‘t register persistent instance.
最新发布
韶华易逝,容颜易老,珍惜当下...........
11-03
194
nacos 注册非临时实例启动失败 is ephemeral service, can't register persistent instance.
Docker卸载
future-wy
03-27
492
列出安装过的包
[root@VM_4_84_centos tmp]# yum list installed | grep docker
docker.x86_64 2:1.13.1-53.git774336d.el7.centos @extras
docker-client.x86_64 2:1.13.1-53.git774336d.e...
Linux 安装 单机nacos 遇坑记!!!
王子羽落的博客
06-25
519
今天装了nacos,期间遇到了一些问题,再次记录一下!!!方便下次安装
我装的是2.0.2的最新版本
1、下载
wget https://github.com/alibaba/nacos/releases/download/2.0.2/nacos-server-2.0.2.tar.gz
2、解压
解压:
tar -zxvf nacos-server-2.0.2.tar.gz
移动到/usr/local目录下(放哪都无所谓):
mv nacos /usr/local/
3、启动
到nac
数据结构--知识点16--搜索算法(二叉树)
ANingL的博客
09-06
1552
文章目录一、树的概念1、特点2、树的术语3、树的种类4、树的存储与表示5、常见的树的应用场景二、二叉树1、概念2、性质
一、树的概念
树是一种抽象数据类型(ADT)或是视作这种抽象数据类型的数据结构
1、特点
每个节点有零个或多个子节点
没有父节点的节点称为根节点
每一个非根节点有且只有一个父节点
除了根节点外,每个子节点可以分为**多个不相交(因为都只有一个父节点)**的子树
2、树的术语
节点的度:一个节点含有的子树的个数称为该节点的度
树的度:一棵树中,最大的节点的度称为树的度
叶节点或终端节点
解决Spring Cloud Alibaba/Spring Cloud整合Zipkin之后的报错问题
ITMuch的专栏
08-28
5801
点击上方"IT牧场",选择"设为星标"技术干货每日送达!TIPS•本文服务发现组件以Nacos为例。•本文基于Spring Cloud Greenwich SR1问题复...
Dubbo 稳定性案例:Nacos 注册中心可用性问题复盘
苑先森的博客
02-26
1433
声明:转载自http://blog.itpub.net/31556476/viewspace-2670112/
一、问题描述:
客户使用了 Dubbo,注册中心使用的是 Nacos,在下午开始不断有调用报错,查看日志,发现了 Nacos 心跳请求返回 502
2019-11-15 03:02:41.973 [com.alibaba.nacos.client.naming454] -ERROR [com.alibaba.nacos.naming.beat.sender] request xx.xx.xx.x
gateway nacos注册服务_Alibaba Nacos 二:Nacos的服务注册
weixin_39607240的博客
11-28
57
服务注册是微服务体系中最重要的组成部分,无论是Eureka,Zookeeper,还是Nacos,都在各自的体系中扮演着重要的服务注册角色。在上一篇文章中我们已经启动了一个单机的nacos服务,本节我们将新建项目注册到nacos中。1: 新建项目建完父工程后,在父工程的中新建子module provier-payment9000,不需要添加任何配置,普通的maven项目就可以了,后面9000代表端口...
Nacos名字服务(Naming Service)
热门推荐
liyanan21的博客
04-08
3万+
目录
一、使用
1. 服务提供方
2. 服务消费方
二、服务发现与注册
1. 消费方服务发现
(1)主动拉取服务
NacosNamingService.getAllInstances()
NacosNamingService.getServiceInfo(finalString serviceName,finalString clusters)
NacosNamingSer...
nacos标记下线和删除实例
kongkong的专栏
03-29
1956
ClientBeatCheckTask
标记下线
// first set health status of instances:
for (Instance instance : instances) {
if (System.currentTimeMillis() - instance.getLastBeat() > instance.getInstanceHeartBeatTimeOut()) { // 默认15s
Nacos基础教程(二)--------nacos环境部署
Baldwin_KeepMind
07-26
2503
nocas服务部署1.环境准备2.Nacos下载3.安装4.启动5.启动异常
1.环境准备
nacos需要在java环境下运行,所以在安装nacos之前请确保已经安装了java
baldwin@baldwin:/usr/share/nacos/bin$ java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-8u212-b01-1~deb9u1-b01)
OpenJDK 64-Bit Ser
谷粒学院(十二)Nacos服务 | Fegin | 完善删除课程业务 | Hystrix
星海IT学习之路
10-23
1194
一、微服务与springcloud
1、什么是微服务
(1)微服务是架构风格
(2)把一个项目拆分成独立的多个服务,多个服务是独立运行,每个服务占用独立进程
我们的项目就是一个微服务项目
2、springcloud说明
(1)springcloud并不是一种技术,是很多技术总成,很多框架集合
(2)springcloud里面有很多框架(技术),使用springcloud里面这些框架实现微服务操作
(3)使用springcloud,需要依赖springboot技术
3、Spring Cloud相关基础服务组
gRPC安装及遇到的问题解决方案
木元心的博客
01-04
3444
gRPC安装及遇到的问题解决方案
一、gRPC安装步骤
安装相关依赖库
sudo apt-get install pkg-config
sudo apt-get install autoconf automake libtool make g++ unzip
sudo apt-get install libgflags-dev libgtest-dev
sudo apt-get install...
Nacos指南-服务发现:注销实例
JAVA踩坑之路
04-07
2326
API
描述
删除服务下的一个实例。
请求类型
DELETE
请求路径
/nacos/v1/ns/instance
请求参数
名称
类型
是否必选
描述
serviceName
字符串
服务名
ip
字符串
服务实例IP
port
int
服务实例port
groupName
字符串
分组名
clusterName
字符串
集群名称
namespaceId
字符串
命名空间ID
ephemeral
boolean
是否临时实例
错误编
Dubbo 常见错误及解决方法
阿里巴巴中间件
10-10
1002
导读『StabilityGuide』是阿里多位阿里技术工程师共同发起的稳定性领域的知识库开源项目,涵盖性能压测、故障演练、JVM、应用容器、服务框架、流量调度、监控、诊断...
〖Python零基础入门篇③〗- Pycharm编辑器不能复制粘贴怎么办?
沉淀自己的知识链,丰富自己的技术栈,致意每一次不知死活的成长!
02-18
9240
前言:今天卸载了Pycharm重新安装了一下。安装完成之后,发现 pycharm 编辑器不能 ctrl+V 粘贴了,查了资料,下面将解决方案分享给大家。
这里先说一下造成该现象的原因,是因为安装时将handler设为vim了,所以不能使用 ide 的ctrl+v了。...
Nacos报错: {username=nacos}, bodyMap: {password=nacos}, errorMsg: errCode: 100, errMsg: Nacos.......
xi
06-15
1265
CentOS 部署 SpringBoot 项目时,持续报错: {username=nacos}, bodyMap: {password=nacos}, errorMsg: errCode: 100, errMsg: Nacos.......
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:大白
设计师:CSDN官方博客
返回首页
Java中文社群
CSDN认证博客专家
CSDN认证企业博客
码龄7年
暂无认证
619
原创
1万+
周排名
6578
总排名
156万+
访问
等级
1万+
积分
3283
粉丝
2487
获赞
310
评论
1万+
收藏
私信
关注
热门文章
Java 最常见的 200+ 面试题:面试必备
583357
定时任务最简单的3种实现方法(超好用)
43303
String中删除空格的7种方法!
18830
程序员精美简历Top榜—面试必备
18089
if快还是switch快?解密switch背后的秘密
17869
分类专栏
Redis 核心原理与实战
付费
43篇
Java 面试全解析:核心知识点与典型面试题
付费
40篇
程序员的 Redis 面试金典
付费
13篇
程序员的 MySQL 面试金典
付费
8篇
redis
6篇
java
60篇
mq
2篇
工具
2篇
最新评论
实战,实现幂等的8种方案!
BigMaxGl:
我也觉得,乐观锁感觉就更多地针对并发下的幂等问题,像MQ消费端,要保证幂等,可能要用双重锁的思想
Spring Boot 如何解决多个定时任务阻塞问题?
颜·南方客:
可以使用第二步,然后结合async吗
两难!先更新数据库再删缓存?还是先删缓存再更新数据库?
happysnaker:
我觉得可以先更新数据库再删除缓存,但是像你说的会有些问题,解决方案是更新数据库前预先延长缓存过期时间
Spring 事务失效的 8 种场景!
大叔0769:
很不错,详细
工作中常用的 6 种设计模式!
nicedeshan:
我知道了,ChainPatternDemo得通过Spring容器来获取,自己new就会报空指针异常,把最基本的给忘了
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
顶级 Javaer 常用的 14 个类库
MySQL 优化:Explain 执行计划详解
SpringBoot官方热部署和远程调试神器
2022
10月
11篇
09月
12篇
08月
20篇
07月
19篇
06月
21篇
05月
17篇
04月
17篇
03月
19篇
02月
14篇
01月
22篇
2021年198篇
2020年337篇
2019年131篇
2018年324篇
目录
目录
分类专栏
Redis 核心原理与实战
付费
43篇
Java 面试全解析:核心知识点与典型面试题
付费
40篇
程序员的 Redis 面试金典
付费
13篇
程序员的 MySQL 面试金典
付费
8篇
redis
6篇
java
60篇
mq
2篇
工具
2篇
目录
评论 5
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
Java中文社群
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值