0109 springboot的部署测试监控
springboot的部署测试监控
原理是: 从servlet3.1开始,运行无web.xml的web程序,只需要实现ServletContainerInitializer接口,而SpringBootServletInitializer扩展了该类,所以可以实现无xml启动;
3 配置外置tomcat
4 忽略打包检查
org.apache.maven.plugins
maven-war-plugin
2.3
false
热部署
开发的时候用到, spring-boot-devtools ;
引入依赖:
org.springframework.boot
spring-boot-devtools
true
暴露的配置信息可以配置更多细节方面的处理:
@ReadOperation标注方法 标识GET方法
@WriteOperation 标识POST方法
@DeleteOperation 标识Delete方法
package com.springbootpractice.egproduct.endpoint;
import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
import org.springframework.stereotype.Component;
/**
* @author carterbrother
* @description 新增actuator的一个端点
* @date 2019年06月21日 18:42
* @Copyright (c) carterbrother
*/
@Endpoint(id = "dbCheck",enableByDefault = true)
@Component
public class DBCheckEndpoint {
@ReadOperation
public String test(){
return "db check ok";
}
}
actuator内置了很多的健康指标 需要配置才能显示,配置方法:
management.endpoint.health.show-details=always
package com.springbootpractice.egproduct.health;
import org.springframework.boot.actuate.health.AbstractHealthIndicator;
import org.springframework.boot.actuate.health.Health;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.net.InetAddress;
/**
* @author carterbrother
* @description 进行网络检查
* @date 2019年06月21日 18:30
* @Copyright (c) carterbrother
*/
@Component
public class WWWHealthIndicator extends AbstractHealthIndicator {
@Override
protected void doHealthCheck(Health.Builder builder) throws Exception {
if (ping()){
builder.withDetail("message","可以正常连接互联网").up();
return;
}
builder.withDetail("message","无法连接互联网").unknown();
}
private boolean ping() {
try {
return InetAddress.getByName("www.baidu.com").isReachable(3000);
} catch (IOException e) {
return false;
}
}
}
JMX监控
相对于http监控,也提供了jmx的监控方式;
典型使用方式使用的是jdk的 jconsole,使用jmx协议连接本地的jvm,进行监控,MBean下的Health下可以查看到返回信息;以此来进行监控。
原创不易,转载请注明出处。