请教一下nacos2.0.3版本,client端断网/宕机后,发现实例注册依旧存在,大概30秒才会下线,如何配置keepalive的时间,能让服务快速下线。 之前1.x版本文档中配置心跳在2.x不起作用
Q
[alibaba/nacos]nacos2.0.3 client端断网/宕机后,如何快速下线
2
A
回答
2
2.0.X中客户端长连接断了,服务端会很快就注销服务实例的,不能复现你的问题。
3
估计client的版本不是2.X的,依然用的1.X版本的客户端。1.X版本的客户端依然通过http协议与2.X版本的服务端通信,有心跳机制,15秒失活,30秒剔除。 建议升级客户端只2.X版本,长连接断开服务立马注销剔除。
6
@MajorHe1 client端是2.0.3的版本,用的grpc,断网的情况下client端无法发送请求告知server下线的情况下,如何能让server快速注销实例呢
6
@lpaz010 正常下线时,client端会发送请求告知server下线。 如果断网的情况下,server不会感知到,依旧保持实例在线,短时间无法下线
8
服务是临时服务还是持久服务?断网是怎么断的?可以肯定的是,长连接断了服务端一定会立即注销,本地写个client demo注册一个临时服务,然后直接杀进程,试试就知道了。
1
@MajorHe1 临时服务 通过禁用网卡/拔网线来模拟断网 杀进程的情况下没有问题,但是将client与server网络中断,没有快速下线
6
刚自己测试了使用iptables 模拟禁用ip,确实server没有快速下线,看样子我之前的理解有误,断网/宕机并不意味着长连接立马断开,server端还是会经历心跳检查然后剔除的过程。 至于如何配置这个值,抱歉我也只知道应该在naming模块的healthcheck目录下,但是只看到使用http协议的 IpPortBasedClient 相关的检查,没看到使用grpc协议的心跳检查具体在哪,你有空可以尝试自己翻一下。