事件重现:
Eureka中8001和8002都注册进来了
将8001服务关闭
Eureka中就只剩8002了,8001服务被删除了
图一可以看到,在Eureka中我8001和8002服务都已经注册进去了,在图二中我把8001关闭了,但是图三中Eureka确把8001服务删除了,这不对啊,我Eureka自我保护模式没关啊!根据Eureka的自我保护模式就算服务关闭了,但是注册中心Eureka也不会将这个实例删除才对啊?图三应该是8001,8002都在才符合我的预期啊!
原因:
因为我关闭8001是通过idea关闭,idea让它们正常的走了应用消亡的生命周期,让资源得到了回收,所以我关掉8001时,Eureka就将这个实例删除了。参考链接文章末尾
那么问题来了,我要怎么实验下Eureka自我保护模式呢?服务关闭但是Eureka没有将这个服务剔除出去?
正确测试方法:
用命令查询所有端口:netstat -ano
再用 :taskkill /pid pid号 /f 强行关闭这个端口
可以看到,不通过idea强行将8001关闭了,Eureka还保留了8001实例
那么问题来了,8001服务关闭了,但是注册中心Eureka却没有将8001实例删除,那么消费者(用户)在访问的时候如果Eureka分配8001给消费者那就会报错,这时候该怎么办呢?