consul清理无效服务实例

对于consul的查询无效实例并清除
@RestController
public class ApiController {
    private static Logger log = LoggerFactory.getLogger(ApiController.class);
    @Autowired
    private ConsulClient consulClient;

    /**
     * 剔除所有无效的服务实例
     */
    @RequestMapping(value = "/CheakCleanService", method = RequestMethod.GET)
    public void CheakCleanService() {
        log.info("***********************consul上无效服务清理开始*******************************************");
        //获取所有的services检查信息
        Iterator<Map.Entry<String, Check>> it = consulClient.getAgentChecks().getValue().entrySet().iterator();
        Map.Entry<String, Check> serviceMap = null;
        while (it.hasNext()) {
            //迭代数据
            serviceMap = it.next();
            //获取服务名称
            String serviceName = serviceMap.getValue().getServiceName();
            //获取服务ID
            String serviceId = serviceMap.getValue().getServiceId();
            log.info("服务名称 :{}**服务ID:{}", serviceName, serviceId);
            //获取健康状态值  PASSING:正常  WARNING  CRITICAL  UNKNOWN:不正常
            log.info("服务 :{}的健康状态值:{}", serviceName, serviceMap.getValue().getStatus());
            if ( serviceMap.getValue().getStatus() == Check.CheckStatus.CRITICAL) {
                log.info("服务 :{}为无效服务,准备清理...................", serviceName);
                consulClient.agentServiceDeregister(serviceId);
            }
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值