优化老项目服务启停导致的调用已停止服务的问题。启用EurekaNotificationServerListUpdater会出现一些问题,以下为跟踪过程以及目前可用的解决办法。
前置环境
springclound+springboot
<version.springboot>1.5.11.RELEASE</version.springboot>
<version.springcloud>Edgware.SR5</version.springcloud>
问题场景
使用EurekaNotificationServerListUpdater,但是在使用过程中,发现一旦启动该类,就会出现服务列表已更新,但是请求还会打到已关闭服务,进而出现问题。
服务A -》eureka-》 服务B (多节点101,102,103)
问题描述:
1.服务A-controller请求多次服务b的服务(正常)
2.关闭某个服务b节点(103),并使用以下代码打出eureka服务清单
public String getServices() {
List<String> services = discoveryClient.getServices();
StringBuilder stringBuilder = new StringBuilder();
for (String service : services) {
List<ServiceInstance