最近一直在思考一个问题,如何快速地定位出平台的问题。平台的运行由非常多组件之间的消息交互,各个组件接收到不同的消息之后做出响应,返回不一样的结果应答。要完成某一项功能,可能会涉及到平台各个组件的好几次消息交互。平台有一个工具可以抓取消息包,在出问题之后,我们经常需要分析消息包,然后定位问题会在哪儿----哪个消息交互出了问题,返回的不是预期结果。经常的情况是,消息是在是太多了,根本看不过来,要定位一个问题在消息交互的哪个环节出了问题非常困难。
定位问题非常依赖于开发人员对于业务系统的熟悉程度,说到底就是对于业务流程的熟悉,对于消息协议的熟悉。对于既定系统,它的消息协议肯定是不会变的,所以我们有什么办法能够加快这个定位问题的步骤,减轻维护人员的压力呢?
平台的运行受到很多个方面的影响。总的来说包括以下几个方面:操作系统,别的进程干扰,系统配置,平台配置,交互部件异常等。定位问题我们所拥有的信息包括抓取的消息包,日志信息,对于系统的业务流程知识。平台不出问题是不可能的,在这样的一个前提下怎么样才能更快更好地解决问题呢?