nacos icon indicating copy to clipboard operation
nacos copied to clipboard

服务实例被kill后在实例列表中一直存在

Open catalpa-tree opened this issue 2 years ago • 9 comments

版本1.4.2 server部署环境docker,client应用也部署docker中,每次重启应用(生成新的pod,旧pod会kill掉)但在dashboard中和/nacos/v1/ns/instance/list接口中一直能查到之前的实例节点 image

image

catalpa-tree avatar Sep 15 '22 07:09 catalpa-tree

”下线”按钮本来就是在告知其他instance,不要再去访问该instance;而不是直接把该instance踢出去

realJackSun avatar Sep 15 '22 08:09 realJackSun

”下线”按钮本来就是在告知其他instance,不要再去访问该instance;而不是直接把该instance踢出去

这个下线是指实例被kill掉了,不是点击下线按钮,我改下标题避免误解

catalpa-tree avatar Sep 15 '22 09:09 catalpa-tree

看了下日志,删除失败了,但没具体原因,总共有100多服务,有10几个服务实例存在这个问题 其他服务的实例无问题,咨询下一般是什么原因导致的了? image

catalpa-tree avatar Sep 15 '22 09:09 catalpa-tree

话说,你出现这个错误之后在不重启nacos服务端的情况下停掉其他的服务实例能正常停掉吗?

hoErYu avatar Sep 16 '22 03:09 hoErYu

我看1.4.2版本的Nacos NacosAsyncRestTemplate这个类设计是单例的,这个类用于发起http请求的InternalHttpAsyncClient实际上处于关闭状态才会抛这个异常,那接下来需要用NacosAsyncRestTemplate来发起http请求都会失败。

hoErYu avatar Sep 16 '22 04:09 hoErYu

话说,你出现这个错误之后在不重启nacos服务端的情况下停掉其他的服务实例能正常停掉吗? 其他的服务实例上下都正常,总共100多个服务,只有几个会一直这样

catalpa-tree avatar Sep 16 '22 06:09 catalpa-tree

我看1.4.2版本的Nacos NacosAsyncRestTemplate这个类设计是单例的,这个类用于发起http请求的InternalHttpAsyncClient实际上处于关闭状态才会抛这个异常,那接下来需要用NacosAsyncRestTemplate来发起http请求都会失败。

如果是这个问题那应该是所有的都有问题,server端已经稳定运行1年多了期间也没任何问题,从上周开始断断续续出现这个问题,如果有一个服务出现那这个服务就一直这样了,其他服务没问题。所有客户端也都一样,发送的http包也都一样,看不出来到底哪里问题了,会不会又是个疑难杂症

catalpa-tree avatar Sep 16 '22 06:09 catalpa-tree

https://github.com/alibaba/nacos/issues/6367 你可以看下这个issue,我看好像是2.0.3版本才修复 这是服务端的bug,跟客户端没关。服务端在对某个实例心跳检测判断为挂掉的实例之后会通过这个异步的httpclient发起一个127.0.0.1的请求调用接口去删除这个挂掉的实例,然而这个httpclient处于STOPPED状态就抛这个异常了。但是为啥就个别实例有问题这个我也不清楚。

hoErYu avatar Sep 16 '22 08:09 hoErYu

#6367 你可以看下这个issue,我看好像是2.0.3版本才修复 这是服务端的bug,跟客户端没关。服务端在对某个实例心跳检测判断为挂掉的实例之后会通过这个异步的httpclient发起一个127.0.0.1的请求调用接口去删除这个挂掉的实例,然而这个httpclient处于STOPPED状态就抛这个异常了。但是为啥就个别实例有问题这个我也不清楚。

好的 谢谢你的回复,我去尝试重启下server端观察下

catalpa-tree avatar Sep 19 '22 06:09 catalpa-tree