获取Tomcat是否有保持连接数
当我们摘掉一台tomcat应用流量的时候,可以马上重启tomcat么?我的理解是不能,我们只能保证当前没有新的请求链接进来。而正在处理的请求链接结束没有?这个是我们需要关注的事情。
1.在linux 下面使用shell 命令:
netstat -na | grep ESTAB | grep :8080 | wc -l
2.有没有Java 层面上的办法来实现呢?
有,答案如图。
这个是tomcat manger页面里面的显示的,深究了一下tomcat的实现。通过实现代码,我们也可以直接在web层面上获取这个数据。
MBeanServer server = Registry.getRegistry(null, null).getMBeanServer();
String e = "*:type=ThreadPool,*";
ObjectName objectName = new ObjectName(e);
Set set = server.queryMBeans(objectName, (QueryExp) null);
//端口请修改成自己应用的,一般也可以动态的。
ObjectName threadObjName = new ObjectName("Tomcat:type=ThreadPool,name=\"http-nio-8800\"");
// server.getMBeanInfo(threadObjName);
String results = "";
Object name = server.getAttribute(threadObjName, "keepAliveCount");
results = "keepAliveCount:" + name;