[ERROR] Target process 17272 is not the process using port 3658, you will connect to an unexpected process. [ERROR] If you still want to attach target process 17272, Try to set a different telnet port by using --telnet-port argument. [ERROR] Or try to shutdown the process 13400 using the telnet port first.
提示这个的原因是错误使用了 exit退出,之前打开过进程[3] 端口仍被占用。如果客户端无操5分钟,session过期后,再次登入选择其它进程也会提示上述错误。类似quit。正确退出命令为:shutdown。
使用: http://localhost:8563/ 可以通过web访问Arthas (客户端)
与退出有关命令有:
如上图可见我本地启动了两个进程[3]、 [4] 两个springboot 项目。接下来带大家串一下通过Atrhas的命令,我们能得到什么样的有用信息以及能给我们提供哪些判断依据。
这里先抛出一个问题,就是你为什么要使用arthas,或许是遇到了线上难以定位的问题,又或者其它。带着问题是看,总是能收获一个成串的知识链。
$ sc
“Search-Class” 的简写,这个命令能搜索出所有已经加载到 JVM 中的 Class 信息. 对于不熟悉的命令在后面添加-h往往能得到更多有用的信息。 贴图仅此一次,后续类似命令不再赘述。
比如命令:sc com.sun.proxy.* 可以将全类名前匹配的类搜索出来。
-d 表示: detail
通过code-source能够得到这个类具体是由哪个jar包加载的。这个在处理 钻石依赖 情况,通常可以用到。反编译出来的源码高亮展示,更方便定位代码是不是正确的分支,自己代码有没有提交。