服务提供者已关闭,但是还在被其他应用调用

本文介绍服务提供者关闭后还在被其他应用调用的解决方案。

问题现象

其他应用调用依赖的服务提供者时报错,错误信息显示仍然在调用一个已经下线或停止的服务提供者的IP地址。

可能原因

  • 服务提供者并未彻底关闭,进程仍然存在并发送心跳维持连接,导致Nacos未摘除服务提供者。或有额外的应用进程在发送心跳维持连接,导致Nacos未摘除服务提供者。
  • 关闭服务提供者后,该服务已经没有可用的提供者,触发了推空保护
  • 网络问题或订阅者应用有问题,导致Nacos-Client未获取到最新的服务提供者地址。
  • Nacos-Client已经获取到最新的服务提供者地址,但应用未使用(如有路由规则、权重规则、框架缓存等)。

解决方案

在MSE控制台查看该服务提供者是否还存在,具体操作方式参考查看服务详情

同时可以尝试接入微服务治理的无损发布功能,解决因框架使用等问题导致非预期的流量损失。