目录 Tomcat 性能监控与调优入门
psi-probe 监控(比tomcat-manager更强大)
Q1:tomcat远程Debug用到的技术?
A1:jdwp,定义了调试器和被调试器之间的通讯协议。
对应文档
https://www.ibm.com/developerworks/cn/java/j-lo-jpda1/?mhq=jdwp&mhsrc=ibmsearch_a#icomments
Q2:tomcat远程如何配置才能使用jdwp?
A2:打开bin下面的startup.sh并且修改。
- 1.命令
1、修改startup基本配置信息
vi ./bin/startup.sh
2、在最后添加jpda参数
3、修改catalina.sh,输入JPDA按n搜索,会看到使用之后会自动生成一行参数。
vi ./bin/catalina.sh
...
...
...
:/JPDA
如图所示、
4、重启之后查看54321端口是否启动
netstat -nap | grep 54321
发现已经被LISTEN监听了,这个就是我们的调试端口。
- 2.整体动态演示
写一个例子部署到Tomcat下面来,远程调试一下把!
一、Tomcat远程Debug
1.1demo
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
/**
* @Description : Tomcat远程Debug
* @Auth : Xuhy
* @Date : 2019-01-24
* @Time : 16:19
*/
@RestController
public class TomcatListenController {
@GetMapping("/tomcatListen/hello")
public
@ResponseBody
String hello() {
String str = "";
for (int i = 0; i < 10; i++) {
str += i;
}
return str;
}
}
1.2修改启动
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
public class NcycApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(NcycApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(NcycApplication.class);
}
}
Q3:tomcat远程Debug需要注意什么?
A3:打包方式一定要是war,继承SpringBootServletInitializer重写configure方法。
Q4:IDEA开发工具tomcat远程Debug如何操作呢?
A4:GIF演示