异步调用共享MDC信息(请求id,用户信息)用于日志跟踪(登录日志)、批量生成数据、异步存储设备登录数
2026/6/11 21:04:05 网站建设 项目流程

文章目录

  • I 开发设计
    • 性能优化
    • 异步调用共享MDC信息
    • MDC(Mapped Diagnostic Context)
  • II 案例
    • 存储设备登录数
    • 异步存储用户登录日志

I 开发设计

本文介绍了开发设计中的性能优化和MDC信息共享方案。
在性能优化方面

  • 建议数据库层面创建查询索引并避免循环操作
  • 代码层面采用异步处理非主流程逻辑。
  • 针对异步调用场景,强调通过指定线程池名称(normalThreadPool)来共享MDC信息。

MDC作为多线程日志上下文传递机制,使用put()/setContextMap()绑定线程数据,需注意清理防止内存泄漏。对于JDK21虚拟线程,推荐使用ScopedValue或自定义装饰器实现MDC传递。

性能优化

  1. 数据库层面: 查询字段创建索引,循环不执行数据库操作
  2. 代码层面: 非主流程的逻辑可以使用异步执行,比如日志操作,异步方法获取用户信息可以采取MDC实现

异步调用共享MDC信息

后续如果涉及异步调用的时候,异步方法需要获取用户信息的话,需要指定线程池名称为:normalThreadPool,尤其有多个线程池对象的时候,一定要指定。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询