RabbitMQ监控(4)——URL监控

        在监控的过程中,我们除了监控一些服务性能情况,还有一些服务的存活也需要监控,这时候,我们就可以用到java自带的url操作类,完成,整体思路是通过一个请求的状态码判断某请求,是否存在,达到监控的目的,为了更可靠,我们重复请求五次,都失败再警告,现在我们一起来实现它。


1,HTTP状态码:

1开头(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码。
2开头(成功) 
3开头(重定向) 
4开头(请求错误) 
5开头(服务器错误) 

百度百科

网络资料




2,工具类:

package com.el.rabbitmq.supervise.common.rabbitmq;

import java.net.HttpURLConnection;
import java.net.URL;

/**
 * Created by Administrator on 2016/3/22.
 */
public class URLUtils {
    /**
     * 功能:检测当前URL是否可连接或是否有效,
     * 描述:最多连接网络 5 次, 如果 5 次都不成功,视为该地址不可用
     * @param urlStr 指定URL网络地址
     * @return URL
     */
    public static Boolean isConnect(String urlStr) {
        if(urlStr==null||urlStr.isEmpty()){
            return false;
        }
        Boolean isConnected = false;
        int counts = 0;
        URL url=null;
        while (counts < 5) {
            try {
                url = new URL(urlStr);
                HttpURLConnection con = (HttpURLConnection) url.openConnection();
                int state = con.getResponseCode();
                if (state == 200) {
                    isConnected=true;
                }
                break;
            }catch (Exception ex) {
                counts++;
                isConnected=false;
                continue;
            }
        }
        return isConnected;
    }
}


这样,就和上篇博客的服务检测方法能够合上了:

@Override  
    public Boolean checkOneService(ControlService controlService) throws Exception {  
        if(controlService == null ){  
            return false;  
        }  
        boolean isFinish=false;  
        if(URLUtils.isConnect(controlService.getServiceUrl())){  
            isFinish=true;  
        }else{  
            isFinish = sendWarningOneservice(controlService);  
            isFinish=false;  
        }  
        return isFinish;  
    }  


总结

       简单的方法,简单的方式,有时候能够起到不容忽视的作用,我们有时候,复杂的问题,高大上的问题不能解决,没有头绪,恰恰是这种简单,我们还不够,或者说原始积累还不足,我们不但要高屋建瓴,也要深入进去,深入到最简单,最底层,再来看你的问题,是不是觉得,解决方法不止一个了!这就是人们常说的经验!






你可能感兴趣的:(RabbitMQ,架构,大数据,云计算,RabbitMQ监控)