恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

SpringCloud sleuth 在 spring-mvc 应用内 traceId 获取及使用

  • 首页
  • 资讯中心
  • /
  • SpringCloud sleuth 在 spring-mvc 应用内 traceId 获取及使用

相关资讯

香港电讯荣获“2024最佳医药数字信息与通信技术解决方案” 大奖 2026/8/22 12:22:54
OAuth 2.0 授权机制详解:不是登录,而是安全委托 2026/8/22 12:17:53
[AutoSar]BSW_Memory_Stack_001 存储栈概述 2026/8/22 12:17:53

最新资讯

Calibre 繁简中文转换插件:3 步完成 epub 繁简互转的完整指南
为什么第二次HTTPS连接更快?http_study实测TLS会话恢复与Session Ticket
FindingOcean海洋标记算法:airbnb题库BFS与DFS洪水填充方案完整对比
CityPicker城市选择器:快速搭建Android省市区地址选择组件
免费告别EAS付费账单:expo-react-native-cicd让React Native CI/CD零成本入门的完整指南
题解:洛谷 P2837 [USACO08FEB] Dining Cows B

今日推荐

markdown-it-vue 踩坑排障:从安装到渲染的 6 个高频问题快速讲清
多尺度智能体控制:从宏观密度场到微观决策的架构与实践
CUBE标准:统一AI智能体评测的度量衡与架构解析

本周热门

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码
【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码
隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

SpringCloud sleuth 在 spring-mvc 应用内 traceId 获取及使用

发布时间:2026/8/22 12:22:54
SpringCloud sleuth 在 spring-mvc 应用内 traceId 获取及使用 目录1. MAVEN1.1. spring-cloud-starter-sleuth:2.0.0.RELEASE1.2. spring-cloud-starter-sleuth:3.0.02. ​获取代码2.1. spring-cloud-starter-sleuth:2.0.0.RELEASE2.2. spring-cloud-starter-sleuth:3.0.03. 为何可以如此获取4. 实际项目中使用5. 日志中打印 traceId6. 特别注意1. MAVEN1.1. spring-cloud-starter-sleuth:2.0.0.RELEASEdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-sleuth/artifactIdversion2.0.0.RELEASE/version/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-sleuth-core/artifactIdversion2.0.0.RELEASE/version/dependencydependencygroupIdio.zipkin.brave/groupIdartifactIdbrave-instrumentation-spring-webmvc/artifactIdversion5.1.0/version/dependencydependencygroupIdio.zipkin.brave/groupIdartifactIdbrave-instrumentation-servlet/artifactIdversion5.1.0/version/dependency1.2. spring-cloud-starter-sleuth:3.0.0dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-sleuth/artifactIdversion3.0.0/version/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-sleuth-brave/artifactIdversion3.0.0/version/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-sleuth-instrumentation/artifactIdversion3.0.0/version/dependency2. ​获取代码2.1. spring-cloud-starter-sleuth:2.0.0.RELEASE// ServletServerHttpRequest requestTraceContexttraceContext(TraceContext)request.getServletRequest().getAttribute(TraceContext.class.getName());StringtraceIdtraceContext.traceIdString();// HttpServletRequest requestTraceContexttraceContext(TraceContext)request.getAttribute(TraceContext.class.getName());StringtraceIdtraceContext.traceIdString();2.2. spring-cloud-starter-sleuth:3.0.0// ServletServerHttpRequest requestTraceContexttraceContext(TraceContext)request.getServletRequest().getAttribute(TraceContext.class.getName());StringtraceIdtraceContext.traceId();// HttpServletRequest requestTraceContexttraceContext(TraceContext)request.getAttribute(TraceContext.class.getName());StringtraceIdtraceContext.traceId();3. 为何可以如此获取版本所在 jar全路径spring-cloud-starter-sleuth:2.0.0.RELEASEbrave-instrumentation-servletbrave.servlet.TracingFilterspring-cloud-starter-sleuth:3.0.0spring-cloud-sleuth-instrumentationorg.springframework.cloud.sleuth.instrument.web.servlet.TracingFilterpublicfinalclassTracingFilterimplementsFilter{finalServletRuntimeservletServletRuntime.get();finalCurrentTraceContextcurrentTraceContext;finalHttpServerHandlerHttpServerRequest,HttpServerResponsehandler;publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)throwsIOException,ServletException{HttpServletRequestreq(HttpServletRequest)request;HttpServletResponseresthis.servlet.httpServletResponse(response);TraceContextcontext(TraceContext)request.getAttribute(TraceContext.class.getName());if(context!null){CurrentTraceContext.Scopescopethis.currentTraceContext.maybeScope(context);try{chain.doFilter(request,response);}finally{scope.close();}}else{Spanspanthis.handler.handleReceive(newHttpServletRequestWrapper(req));request.setAttribute(SpanCustomizer.class.getName(),span.customizer());// 赋值 traceIdrequest.setAttribute(TraceContext.class.getName(),span.context());......}}}4. 实际项目中使用packagecom.zxguan.springcloud2.user.config;importorg.springframework.core.MethodParameter;importorg.springframework.core.annotation.Order;importorg.springframework.http.MediaType;importorg.springframework.http.server.ServerHttpRequest;importorg.springframework.http.server.ServerHttpResponse;importorg.springframework.web.bind.annotation.RestControllerAdvice;importorg.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;Order(0)RestControllerAdvicepublicclassApiResponseAdviceimplementsResponseBodyAdvice{/** * 判断需要处理的情况 * * param methodParameter * param selectedHttpMessageConverter * * return boolean true: false: */Overridepublicbooleansupports(MethodParametermethodParameter,ClassselectedHttpMessageConverter){//returnfalse;}/** * 消息体返回前处理 * * param body 返回的消息体 * param methodParameter 响应类型 * param mediaType 请求的响应 contentType * param selectedHttpMessageConverter 执行序列化的转换器 * param request * param response * * return Object 返回的消息体 */OverridepublicObjectbeforeBodyWrite(Objectbody,MethodParametermethodParameter,MediaTypemediaType,ClassselectedHttpMessageConverter,ServerHttpRequestrequest,ServerHttpResponseresponse){// 此处可以统一添加 traceId 到响应中returnnull;}}5. 日志中打印 traceId借助MDC机制, 实现traceId的打印pattern%d{yyyy-MM-dd HH:mm:ss.SSS} %X{X-B3-TraceId} %X{X-B3-SpanId}/pattern6. 特别注意MDC设置X-B3-TraceId, 可以通过自定义过滤器提前到过滤器级别但需要注意过滤器顺序自定义过滤器需排在TracingFilter之后Spring Cloud2 Sleuth 3 OpenFeign存在设计缺陷存在多个问题。其中就包括FeignClient的url写法会报错为了尽可能保留 Sleuth 功能需要使用RestTemplate或者HttpClient等实现接口访问而非全局禁用配置spring.sleuth.feign.enabledfalse

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号