生产排查——客户号格式不合法

前提

昨天查生产问题,即一个用户的手机app显示“客户号格式不合法”,同时给了我用户姓名和手机号

问题排查

于是我和同事去生产上查问题,自己也对整个流程有了框架上的认识。

  1. 首先还是在pweb的数据库中查一下问题,发现这个问题的错误码是user那边的,于是我们又跑到user中,又因为同事看到这是在财富模块报的错,因此又让我在finance中查看错误。最后找到这个错误信息,并且是调用了myfortune这个接口错误;

  2. 在user中针对这个用户进行了多种查询,首先是用户表user_info(注册表),这里面显示用户是在10月28号注册的,又在客户表cust_info(实名表)中发现这个用户是当天实名的;再去acct_info(银行账户表)中查,发现是29号开的二类户,而他的这个错误信息时间是28号当天;

  3. 所以可知:他在没有开二类户之前,去查看我的财富,就会报这个问题;

  4. 不过我其实有点小疑惑,按理来说应该是报给用户诸如“没有开二类户”这种错误,但是却报的是客户号的问题。

模式总结

1、首先还是在pweb的数据库中查一下问题,发现这个问题的错误码是user那边的,于是我们又跑到user中,又因为源哥看到这是在财富模块报的错,因此又让我在finance中查看错误。最后

(我们最好不要在日志中直接grep,这样量是很大的;而应该在数据库中利用sql语句来进行查询。Sql语句可以是如下的样子

Select * from access_log where TRANSMONTH > ‘2020-11-04’ and TRANSTATE = ‘N’;)

(如果没有这个数据库,我们还需要“新建数据库”,新建的时候如果这个数据库的ip忘记了,那我们可以在Apollo上找,key值大致是mysql.datasource.url,我们拿到value后,可以ping一下这个value,从而拿到ip地址,这个方法显然是比较繁琐的,因此pweb等几个常见的微服务ip地址最好可以记住)

 

2、根据上一步sql查询出来的结果,我们可以看到错误信息,这个错误信息是有对应的流水号。同时也可以看看其错误码是什么?是UA开头的则是user微服务中的,于是我们可以拿这个流水号去user微服务查,sql语句如下:

Select * from ua_log where TRANSMONTH > ‘2020-11-04’ and GlobalJSL = ‘PMBSxxxxxxxxx’

这样就能锁定某一条数据,从这条数据中拿到localaddress,即此错误信息是在本地哪台服务器上的,根据这个便可以打开服务器(是一个什么资产管理系统界面),里面往往有多台服务器,我们首先是选择localaddress,尽管如此,仍有多台服务器,这时候我们选择ssh协议的,便可以。同时在进入之前要选择putty,不选择CRT,这样大致流程也就完成了。

 


版权声明:本文为qq_37456205原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。