【Nginx日志关联由Sleuth产生的微服务traceid】

该博客探讨了在前后端分离的系统中,如何将Vue前端通过Nginx的日志与Java后端Spring Cloud微服务中Sleuth生成的TraceID关联起来。作者尝试了两种思路,最后选择了在后端通过GlobalFilter将TraceID添加到响应头,然后在Nginx日志配置中记录这个TraceID,实现了全链路跟踪。
摘要由CSDN通过智能技术生成

背景描述

系统采用了前后端分离的架构搭建:

  • 前端是采用Vue 2.X+elementUI开发,构建的安装包部署到Nginx服务上。
  • 后端业务采用Java+spring cloud微服务架构,前置spring cloud gateway网关接入,后置各种业务微服务应用构成,通过alibaba Nacos做服务发现和应用配置。
    架构示意图

问题描述

需求是想把系统从Vue前端到Java后端的每一次访问日志通过唯一ID全链路跟踪起来。在Java后端微服务的全链路跟踪直接引入Spring Cloud Sleuth方案解决,但如何把Vue前端的Nginx访问日志与Java后端日志里由Sleuth生成的traceid关联起来呢?

解决思路

思路一

在前端Nginx生成访问唯一ID,覆盖后端Sleuth方案产生的TraceID。
【nginx的request_id就是一个随机唯一ID,通过nginx配置可传递到upstream网关层,但是没有找到好办法去覆盖Sleuth方案产生TraceID,最终放弃此思路 】

思路二

利用后端Sleuth方案产生的TraceID,并在响应的时候把它返回Nginx层,并记录于nginx日志中。【最终选择方案】

解决方案(思路二)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值