如何调试大型服务器端分布式Java应用程序

这是我的问题:我正在尝试调试Apache Cassandra并了解应用程序的流程.即当客户端发送请求时,比如put(),调用哪些方法以及系统如何在内部工作.

所以,这就是我的想法:

>在cassandra代码中编写一个main方法,它调用入口点put()方法,在eclipse中放置断点等等.
>不要编写main方法,只需使用常规客户端(通过TCP访问服务器)和“调试”(通过读取日志文件并理解代码)使用log4j记录器(已在cassandra中实现).

所以,我的问题是,调试这种分布式应用程序的理想方式是什么?

最佳答案 理想的方式?两者都有.

您提到了目标:“调试”和“理解应用程序的流程” – 确定在理解流程之前很难调试,但理解本身可能是目的.

在现实世界中,处理大型分布式系统时往往不能依赖调试器,至少在初期,尤其是因为某些问题只在系统繁忙或运行数小时后才会出现.因此,在应用程序代码和基础结构代码中,良好的调试跟踪以及对该跟踪的细粒度控制至关重要.

但是,如果您有机会在一个非常有启发性的调试器中运行.

在此之前我认为你需要:

一个).研究可能存在的任何设计文档.

B).在一个好的IDE中浏览源代码,例如.日食.只需按照控件.嗯,这是一个有趣的一点,想知道从哪里调用?在类上调用该方法,这有什么作用?何时调用该构造函数?

有一些在你的头部跟随跟踪更容易,你更好地知道在哪里放置断点.

点赞