本文已参与「新人创作礼」活动,一起开启掘金创作之路。
相信大家都对结果第三方接口或者内部服务间的调用吧?那么你们一般是如何快速定位和查询问题呢?
以下是我在对接工作中的经验,主要讲的是日志储存和读取,保证是一条线。这里做一个记录,也做一个分享
别人请求自己的接口时,需要记录以下几点,将这些要全部储存起来:
- 请求方的ip
- 访问的链接
- 请求来的数据
上面说的将所有请求信息全部储存起来后,我们需要考虑一个问题,并发问题,那么我们如何解决并发导致的日志错行呢?
这个问题问的好,如果日志错行,我们记录日志的意义就没有了,因为出了问题后,根本无法准确定位问题所在。所以最重要的一点,添加日志id,在索引日志的时候使用日志id来查询,这样就能保证数据是一条线的
接下来就是签名环节,规定一种签名方式,两方在请求和接收的时候全部做签名和验签操作,常见的签名方式有:RSA、RSA2、AES、DES、SHA256、MD5等等,有很多,就不一一列举了
我们请求别人的时候一样要记录清楚以下几点:
- 请求的url地址
- 请求的参数
- 对方返回的响应值
接下来是本文的总结:
- 储存请求来的数据
- 储存请求出去的数据
- 添加日志唯一id,保证一条线
- 请求的加签和响应的验签操作
(响应或者回调验签这个,如果在某些特定场景,是可以选择不验签的,但是已经要记录上验签失败的日志)
做到以上几点,不管是对接第三方或者别人对接自己,出现任何bug的时候,都可以根据日志很快的定位到问题所在
切记一定要:做好日志、做好日志、做好日志!!!