为什么要使用request id
2018-12-16
其他
1. request id 是为了解决下面问题
问题一: 客户端访问的Web服务时,如何将客户端请求与服务端日志关联
问题二: 微服务架构下,访问日志如何查询
问题三: 不同项目交互出现异常,如何做日志关联
2. request id vs 没有request id
没有request id 请求
只能根据调用函数日志关键,在根据用户的输入的参数,时间来确定相关的日志。 如果项目是以分布式,微服务架构来实现, 上面查日志方式帮助很小。
原因如下
- 代码层层封装后,无法通过日志关键与用户请求关联
- 微服务架构下,用户请求逻辑层分解多个子任务给下层服务处理,下层服务无法与用户请求关联
- 不同项目交互,如何在并发,错误重试,参数相同的情况下,无法通过关键字,时间来确定日志
request id
- 当前项目,根据request id 可以找到所有与请求相关的日志
- 不同项目,可以根据request id 确定唯一的请求
3. request id 好处
- 用户请求日志关联
- 项目间请求日志关联
- 多服务间日志聚合
- 调用关系分析
- 日志分析
4. request id 依赖
- 使用request id,要有配套日志记录系统
- 周边系统支持,保持统一
- request id 每次用户请求,必须保证唯一。