百分百重现的Bug的分析之道

问题现象

最近遇到客户反馈一个问题,我自己这边测试,问题也是百分百必现。

服务的架构是C/S架构,简单抽象如下图。

1
2
3
4
5
--------
client
--------
server
--------

虽然我自己是100%重现该问题,但是有同事却没有重现该问题。说明该问题和输入的数据有关,我的测试和同事的测试条件是不同的。

但是我们基本诊断服务端问题, 可能方向有几个

  1. DA模块
  2. 中继模块

但是最终发现,问题重现是有一定几率的。并不是百分百重现。

实际上server端是一个集群,可能部署了多了节点。每个节点都有相同的模块,有可能某个Node中的某个模块出现问题了。

1
2
3
4
5
6
// server
----------------
| Node | Node |
-------------
| Node | Node |
----------------

经过排查,发现某个Node的X模块有问题。

总结

  • 在微服务框架中,需要对服务的全部的环节都有全局的掌握
  • 要用集群的思维去考虑故障点,因为现在的服务都不是单点的
请我喝杯茶