Java
文章平均质量分 92
IT三明治
从硬件到软件,从底层到应用层,从后端到前端的Java开发工程师,目前主攻Java相关的全栈开发
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
手写链路追踪-日志追踪性能分析
本文是对《手写链路追踪》系列的延续,主要探讨全链路用户信息可视化对API性能的影响。利用@ControllerAdvice实现响应耗时统计。文章详细介绍了@ControllerAdvice的作用,包括全局异常处理、数据绑定等核心功能,展示了其在Spring项目中的实用性。通过实践验证,为开发者提供了性能优化和全局处理的解决方案。原创 2025-09-21 23:30:16 · 551 阅读 · 0 评论 -
手写链路追踪优化-全局API性能监控
本文主要在拦截器完成了全局API性能监控原创 2025-09-18 00:56:41 · 590 阅读 · 0 评论 -
手写链路追踪优化-自定义用户信息异步追踪
本文介绍了《手写链路追踪》系列文章的优化进展,重点解决用户信息全链路追踪在异步线程中失效的问题。原创 2025-09-15 23:17:26 · 669 阅读 · 0 评论 -
手写链路追踪优化-自定义用户信息追踪
本文介绍了如何通过拦截器实现链路追踪的定制化信息收集。提供了完整的MDCInterceptor实现代码,包括获取用户ID、用户名和客户端IP地址。该方案能有效追踪业务请求信息,同时避免内存泄漏。原创 2025-09-10 09:09:29 · 584 阅读 · 0 评论 -
手写链路追踪优化-MDC改造
本文介绍了如何利用MDC优化链路追踪系统,在保留线程名信息的同时加入trace id实现全链路追踪。MDC(映射调试上下文)作为日志框架提供的线程本地存储功能,可以自动将诊断信息输出到日志中。文章对比了MDC与ThreadLocal的特性,展示了MDC在多维度追踪中的应用,并提供了具体的实现方案:1)创建MDC工具类管理trace id;2)改造ThreadLocalContext清理机制;3)优化Filter实现。这种方案既保留了线程名的诊断价值,又通过trace id实现了跨服务的请求追踪。原创 2025-09-01 09:32:54 · 801 阅读 · 0 评论 -
手写链路追踪优化-多线程追踪
摘要 本文探讨了链路追踪在多线程环境下的实现问题,通过添加异步配置和测试代码验证现有方案的局限性。作者在原有链路追踪系统基础上新增了异步线程池配置、异步/同步登录接口实现以及测试脚本。测试结果表明当前方案在多线程场景下存在追踪失效的问题,为后续优化多线程链路追踪功能奠定了基础。文章提供了完整的代码示例,包括异步配置类、服务接口实现和测试脚本,便于读者理解问题并复现验证过程。原创 2025-08-31 10:22:59 · 891 阅读 · 0 评论 -
手写链路追踪优化-自动全局追踪代替局部手动追踪
本文介绍了如何将日志追踪功能从API层面优化到Filter层面,实现全局统一处理。通过对比Filter和AOP的特性,选择使用Filter来拦截所有HTTP请求,自动处理trace id的生成和传递。核心实现包括:创建LogFilter拦截请求头获取/生成trace id并设置到线程名;通过FilterRegistrationBean注册过滤器;简化API代码去除冗余逻辑。这种方法避免了重复代码,使业务代码更专注,同时保持了日志追踪的完整性和一致性。原创 2025-08-30 16:41:56 · 830 阅读 · 0 评论 -
手写链路追踪
本文介绍了链路追踪的概念及其在分布式系统中的重要性。链路追踪通过记录请求的完整生命周期,帮助快速定位问题、优化性能和分析安全风险。文章展示了如何通过Spring Cloud Sleuth或自定义代码实现链路追踪,并提供了一个基于日志追踪的API接口示例,包括生成trace ID和修改线程名以便追踪日志。该实现可帮助开发人员更好地理解系统调用流程,提高问题排查效率。原创 2025-08-29 23:29:04 · 697 阅读 · 0 评论 -
springboot优雅shutdown时异步线程安全优化
因为前两篇文章介绍的graceful shutdown并不是最优解。从架构师的角度考虑的话,写代码尽量满足多数情况可用,易用,最好还是全局有效的,让其他程序员专注于写业务代码。所以我重新写了一篇原创 2024-06-16 19:27:14 · 1760 阅读 · 1 评论 -
springboot优雅shutdown时如何保障异步线程的安全
我前面写了一篇springboot优雅shutdown的文章,看起来一切很美好。 https://blog.youkuaiyun.com/chenshm/article/details/139640775那是因为没有进行多线程测试。如果一个请求中包括阻塞线程(主线程)和非阻塞线程(异步线程),会是什么效果?接下来我们就测试一番原创 2024-06-15 14:27:38 · 1137 阅读 · 0 评论 -
震惊!好多人做spring boot release的时候并不是线程安全的
spring boot默认的shutdown方式并不是线程安全的。本文会为你一下验证,并给出解决方案原创 2024-06-13 08:27:14 · 487 阅读 · 2 评论
分享