首页 > 解决方案 > 如何使用 IntelliJ IDEA 调试部署在集群环境中的 Java 应用程序?

问题描述

每次当我需要调试部署在集群环境中的Java应用程序时,我都遇到了大麻烦。

公司的环境(测试、验收等)通常是具有多个服务器的集群环境,并且在集群前面,有一个代理服务器将请求(HTTP)转发到集群中的一台服务器。如果您无权访问各个服务器,并且不允许从一台特定服务器午餐应用程序,那么您必须使用来自代理的端点。

据我所知,一台 IntelliJ 只能打开一个远程调试连接。这意味着如果请求发送到集群中的另一台服务器(我的调试器未连接),那么我在调试窗口中看不到任何内容。下次吧。

如果你幸运的话,你可以停止集群中的所有服务器,除了你正在调试的一个。但是停止服务器也不是一件容易的事,尤其是在验收环境中。

据我的同事说,我可以用一个 Eclipse 实例调试多个服务器,但我真的不想使用 Eclipse。

好的,我想我可以将整个源代码复制到不同的文件夹,使用新的 IntelliJ 实例打开代码,然后我可以从那里连接到集群中的第二台服务器。但这是一个痛苦的 hack。

有没有什么正常的方法可以用 IntelliJ 调试多台服务器的集群环境?

标签: javadebuggingintellij-idearemote-debugging

解决方案


You can open as many number of debug sessions as many remote JVM are running on remote ends (on corresponding ip address and tcp port) by creating multiply Run Configurations and launch them: enter image description here

For example to connect with the above host and port, the remove JVM must be started with

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

if you use JDK version 8 or less, and the

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005

if you use JDK version 9 or newer.


推荐阅读