问题描述
在nacos2.2.3中删除非临时性实例
报错
解决方案
在命令行下执行命令:
curl -X DELETE "http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos-restTemplate-stock&groupName=DEFAULT_GROUP&namespaceId=public&ip=192.168.1.2&clusterName=DEFAULT&port=10044&ephemeral=false&username=nacos&password=nacos"
说明:
- serviceName 服务名
- groupName 组名
- namespaceId 命名空间
- ip IP地址
- clusterName 集群名
- port 端口
- ephemeral 是否是临时的
- username nacos用户名
- password nacos密码
各变量的取值参考下图:
如下图所示:
再去 Nacos 控制台发现服务也随之消失了,如下图所示:
原理
临时实例和永久实例最大的区别是健康检查的方式:临时实例使用客户端主动上报的健康检查模式,而永久实例使用服务端反向探测的模式。也就是说,如果是临时实例,那么客户端需要主动上报自己的健康状况,而永久实例需要 Nacos 服务器端反向探测实例的健康状况。
在这两种实例中,临时实例是可以自动删除非健康实例的,并且当所有的临时实例被删除之后,Nacos 中的服务也会被自动删除。但对于持久化实例来说,即使是非健康状态,也不会自动删除实例和服务,这个时候就需要我们手动删除服务了。