小伙伴同学们写的 TTL实际业务使用场景 与 设计实现解析的文章(写得都很好! )❤️
oldratlee opened this issue · 10 comments
oldratlee commented
应用场景的文章
- 百度交易中台之订单系统架构浅析 - InfoQ by 百度Geek说 2021-04-08
- 针对每个指令是独立执行单元要重复获取数据的问题的解决方案(即Session级Cache)。
- Java 多线程上下文传递在复杂场景下的实践 by vivo互联网技术(海外商城租户区分) 2021-02-01
- 从业务拓展的角度阐述了在复杂业务场景下如何通过
ThreadLocal
,过渡到InheritableThreadLocal
,再通过TransmittableThreadLocal
解决实际业务问题。因为海外的业务在不断的探索中前进,技术也在不断的探索中演进。
- 从业务拓展的角度阐述了在复杂业务场景下如何通过
- Spring Security OAuth2.0认证授权五:用户信息扩展到jwt 2021-01-14
- 性能优化?千万别用Shiro+线程池 2020-12-03
- 异步+线程池优化,单元测试、自测、发布上线、回归都没有问题,以为圆满完成。
- 项目上线不久后,有用户反馈时而能查到别人的数据,这个频率越来越高;后面的用户已经完全查不到自己的数据了。
- 再谈Token认证,如何快速方便获取用户信息 By 尹吉欢 2019-06-11
- openfeign的熔断(hystrix)使用THREAD导致的线程间数据传递问题 2022-07-06
- Spring Cloud中Hystrix 线程隔离导致ThreadLocal数据丢失 By 尹吉欢 2017-12-13
- SpringCache - 请求级别缓存的简易实现 By imyijie 2019-10-11
- 👍 如何在子线程和线程池中使用 ThreadLocal 传输上下文 By 晓_魂淡 2018-09-28
如Spring
的@Async
注解、CompletableFuture.supplyAsync
- 多环境隔离
数据库读写分离中间件
- 如何写一个数据库读写分离中间件 By 彦帧 2018-08-14
采用 库垂直拆分和分区表 来解决库表数据量比较大的问题,采用 读写分离 来解决访问压力比较大的问题。
分布式/全链路追踪
- 💎 自实现分布式链路追踪 方案&实践 2023-03-02
- 使用TransmittableThreadLocal实现异步场景日志链路追踪 by 刘p辉 2021-07-06
- 初探opentelemetry链路跟踪 2021-06-06
Vertx
实战之如何追踪异步函数调用 by 岩泉 2021-06-10- 分布式系统灰度发布实践 2021-01-23
- 全链路压测的方案以及实践 by IT杂货铺 2020-03-18
- Open Tracing(Jaeger) 遭遇多线程 By 一凡之客 2019-12-27
- 全链路跟踪(压测)必备基础组件之线程上下文“三剑客” by 丁威 2019-07-28
- 小米的服务端APM技术实践 by 王福 2019-05-03
- Jaeger Tracing(Open Tracing) 遇到线程池哑火 2019-05-22
- 卫星系统 —— 酒店后端全链路日志收集工具介绍 By 亚辉 曾鋆 2018-01-15
- 求取一份极致的简单:全链路跟踪中间件探索之路 2018-07-11
- 分布式系统调用跟踪实践 By @ihaolin 2016-10-15
- 调用链跨线程传递数据分析 By Yang0503 2019-05-12
- 调用链跨线程传递THREADLOCAL对象 By fredal 2018-12-16
- 全链路中的数据透传 By fredal 2019-12-26
- SLF4J MDC在全链路跟踪中的应用 By fredal 2019-02-02
- 调用链系列四:UAV中调用链上下文传递
http://college.creditease.cn/#/detail/218 - 调用链跨线程传递THREADLOCAL对象 By 云天 2018-12-18
- Spring boot 全局参数传递和追踪 by 杜屹东 2019-12-21
使用介绍与设计实现解析的文章
- 浅谈并发编程的业务场景 by JanYork_小简 2022-05-25
- 💎 多线程热知识(三):TransmittableThreadLocal,异步线程变量传递最优解 by 笑傲菌 2022-02-24
- 摘引:我对这里感到十分的疑惑。为什么要做重放的操作鸭?
- 如果在业务高峰期,线程池最大线程数量及阻塞队列都占慢了,而且采用了
CallerRunsPolicy
的拒绝策略,那么这个时候任务的执行图就可能如下所示。
- 👍 使用TTL实现ThreadLocal的copy——兼容二方三方包已有的ThreadLocal的场景 2022-01-25
- 解决@Transactional不能跨线程池共享事务的问题—使用TransmittableThreadLocal by 猫尾草 2021-12-17
- 💎 谈谈对TransmittableThreadLocal的理解 2021-12-04
- 摘引:在
ITL
中,其实是做到了新起子线程时,复制ITL
。池化的线程做不到,是因为复用线程场景没有这个触发的时机了,那么TTL
一样需要这样的一个触发时机,只不过不是ITL
中的Thread.init
,通过上面的用法示例,我们知道这个触发时机实际上就是TtlRunnable.get()
。
- 摘引:在
- 一文详解JDK中的ThreadLocal 2021-10-27
- 关于ThreadLocal的这两个派生类你了解多少? 2021-10-24
- 池化线程数据传递: TransmittableThreadLocal源码分析 2021-10-22
- ThreadLocal线程间传递数据 by lfboo 2021-10-10
- 全链路追踪组件之 TransmittableThreadLocal by 鹧鸪哨 2021-10-3
- ThreadLocal的短板,我 TransmittableThreadLocal 来补上! 2021-09-23
- 三种ThreadLocal,玩转线程变量保存与传递 - 软件开发随心记 2021-09-22
- 💎 从TransmittableThreadLocal使用前调研(源码分析) by 小胖学编程 2021-06-27
- 使用事项一节很精彩,一把问题关键深入实战,而回答实用。
- 是否存在线程安全问题?
- 子线程修改
TTL
,父线程能否感应到TTL
变化?父线程修改TTL
,子线程能否感应到TTL
变化? - 是否存在内存泄漏问题?
- 子线程中需要调用
remove
方法吗?主线程执行remove
方法会清空子线程的TTL
的值吗? - ……
- 💎 transmittable-thread-local源码梳理 by 李意文 2021-09-19
- QA一节很精彩,几个问题关键深入实现,而回答直接。
- 如果不维护
holder
那个数据结构可以吗? holder
中如果不用WeakHashMap
可以吗?- 为什么
TtlRunnable#capturedRef
要用AtomicReference
类型,不用可以吗? - ……
- 👍 TransmittableThreadLocal原理解析 by 山同学 2021-08-21
- TTL原理:肯定是维护了一个线程级别的的缓存(
holder
),每次调用run()
前后进行set
和还原数据。 - 注意点:TTL为什么不直接继承ThreadLocal?为什么需要在run执行完之后调用restore()?TTL存在线程安全问题?TTL是否存在内存泄露问题?
- TTL原理:肯定是维护了一个线程级别的的缓存(
- 👍 TransmittableThreadLocal相关组件实用解读,及如何达到线程池中的线程复用,及使用在哪些线程数据传递场景? by 阿啄debugIT 2021-06-19
- TransmittableThreadLocal解决线程池变量传递以及原理解析 by IntoTw 2021-05-07
- ThreadLocal 存储的线程变量不能在父子线程中传递解决方案 by 面包君123 2021-05-04
- 💎 怎么吃透一个java项目?- 以TransmittableThreadLocal(TTL)分析为例讲解该如何学习和快速掌握一个项目 by @galaxy2000 2021-03-17
- 一窥TransmittableThreadLocal 2021-01-18
- 最近我经历的ThreadLocal by 殇莫 2021-01-10
- JAVA进阶篇(8)—TransmittableThreadLocal—父子线程间线程本地变量 by 小胖学编程 2020-09-10
- 💎 ThreadLocal系列之——父子线程传递线程私有数据(四) by ZX_周雄 2020-09-13
- 摘引:先提出了ThreadLocal的局限性,接着又提出了InheritableThreadLocal的局限性,并给出了终级解决方案transmittable-thread-local(TTL)。本文给出的终级解决方案并不是直接拿着TTL源码进行原理剖析,而是通过一步步推导的方式,最终向TTL解决方案逼近的过程,相信通过这个过程,大家也能一步步看清TTL面临什么样的问题,以及它是用怎样的思路去解决这些问题的,这些思路才是我们最大的收获。请记住:知识的迁移很重要。
- 💎 TransmittableThreadLocal源码分析 by 捞月亮的阿汤哥 2020-09-07
- 摘引:核心代码非常少,王垠在博文《如何阅读别人的代码》说到的『造就我今天的编程能力和洞察力的,不是几百万行的大型项目,而是小到几行,几十行之短的练习。不要小看了这些短小的代码,它们就是编程最精髓的东西。反反复复琢磨这些短小的代码,不断改进和提炼里面的结构,磨砺自己的思维』。
- 个人觉得TTL框架精髓主要是holder变量的设计和维护,使用capturedRef实现父子(线程池)的TTL值传递,深刻理解ThreadLocal和InheritableThreadLocal的继承关系,以及Thread和ThreadLocalMap的关系。
- 为什么需要TransmittableThreadLocal by 捞月亮的阿汤哥 2020-09-06
- TransmittableThreadLocal(TTL)实现线程变量传递的原理分析 by KyleWang 2020-08-07
- Java学习笔记之 ThreadLocal、InheritableThreadLocal、TransmittableThreadLocal by 夏之夜 2020-07-08
- 💎 全链路追踪必备组件之 TransmittableThreadLocal 详解 by 姜日游 | 公众号文章 2020-05-28
- 摘引:TransmittableThreadLocal的源码解析就结束了。核心源码是不是很简单?但是某些**和考量还是很值得学习的。ThreadLocal的使用,本身类似于全局变量,而且是可修改的。一旦中间过程被修改,就无法保证整体流程的前后一致性。它将是一个隐藏的强依赖,一个可能被忽略、意想不到的坑,应该尽量避免在业务代码中使用的,DO NOT use, only when you know why. 让其他人也明白,文档务必齐全。
- ThreadLocal及在多线程中使用 by 一亩三分地 2020-05-26
- transmittable-thread-local:解决线程池之间ThreadLocal本地变量传递的问题 2020-06-30
- 💎 通过transmittable-thread-local源码理解线程池线程本地变量传递的原理 by @zjcscut 2020-5-2
- 摘引:TTL在使用线程池等会池化复用线程的执行组件情况下,提供ThreadLocal值的传递功能,解决异步执行时上下文传递的问题。它是一个Java标准库,为框架/中间件设施开发提供的标配能力,项目代码精悍,只依赖了javassist做字节码增强,实现Agent模式下的近乎无入侵提供TTL功能的特性。TTL能在业务代码中实现透明/自动完成所有异步执行上下文的可定制、规范化的捕捉/传递,如果恰好碰到异步执行时上下文传递的问题,建议可以尝试此库。
- 👍 错误使用TransmittableThreadLocal让ThreadLocal变量变成线程共享 2020-08-10
- 多线程篇-TransmittableThreadLocal解决池化复用线程的传值问题 2020-04-24
- ThreadLocal缺点及解决方案 by 房东的小黑黑 2020-04-08
- Transmittable-Thread-Local:阿里开源的线程间上下文传递解决方案 by @luoxn28 2020-03-17
- 线程池如何传递线程上下文信息 | 公众号文章 by @luoxn28 2020-03-13
- ThreadLocal跨线程池传递数据解决方案:TransmittableThreadLocal by YourBatman 2020-02-29
- 原来 threadLocal 还能这么用! By gitzzzf - 2019-12-01
- hreadLocal、InheritableThreadLocal、TransmittableThreadLocal解析 by hosaos 2019-10-24
- ThreadLocal父子线程数据传递解决方案 by 程序人生 2019-09-14
- 你的也是我的。3例ko多线程,局部变量透传 By 小姐姐味道 2019-08-19
- 💎 InheritableThreadLocal与阿里的TransmittableThreadLocal设计思路解析 by liangdu_Zuker 2019-08-15
- 摘引:TransmittableThreadLocal功能上,是比较完美的。但是你会发现代码还是比较难以理解,这个可以理解为抽象的不够好。才增加了我们对源码的阅读难度,我们把TransmittableThreadLocal的源码和InheritableThreadLocal做对比就很明显,InheritableThreadLocal的源码好理解很多。这个是不争的事实,我们也可以猜测TransmittableThreadLocal源码比较不好读的原因为:本身要实现传递给线程的ThreadLocal的需求就是很复杂的,其次是TransmittableThreadLocal毕竟是非官方的扩展类,而且官方并没有提供友好的扩展口也导致代码不好写。不管怎样,我们确实学习到了面向的对象的不少技巧和Java库函数的知识。对吧?
- 跨线程传递ThreadLocal By 一条咸鱼 - 2019-08-02
- ThreadLocal技术分享 - 2019-07-22
- Spring Boot使用ThreadLocal、InheritableThreadLocal、TransmittableThreadLocal 2019-05-27
- 揭开ThreadLocal的面纱 By xinlmainl 2019-03-31
- transmittable-thread-local源码分析 By 土豆肉丝盖浇饭 2019-02-24
- TransmittableThreadLocal 导致的线程数据逸出 By youzipi 2019-02-18
- ThreadLocal源码分析-黄金分割数的使用 2019-02-17
- TransmittableThreadLocal的使用及原理解析 By hama1993 2019-02-20
- ThreadLocal父子线程之间的数据传递问题 2018-12-25
- ThreadLocal 跨线程传递 - 冰钟 2018-12-19
- 【原理】Java的ThreadLocal实现原理浅读 - cblogs.com/nick-huang
- java线程变量那点事儿 By little_how 2018-10-26
- ThreadLocal及其扩展 By 彦帧 2018-08-04
- ThreadLocal 相关知识全梳理 By zshellzhang 2018-08-03
- Java多线程之隔离技术ThreadLocal源码详解 By chinesszz 2018-07-17
- Transmittable ThreadLocal 学习 By attanwu 2018-6-27
- 当ThreadLocal碰上线程池 https://www.jianshu.com/p/85d96fe9358b
- InheritableThreadLocal——父线程传递本地变量到子线程的解决方式及分析 By 代码小司机 2018-05-29
- 👍 TransmittableThreadLocal详解 By @tianjialin 2018-04-17
- ThreadLocal类原理简析——线程封闭的常规实现 By 邱simple 2018-03-11
- 线程之间传递 ThreadLocal 对象 By @ylgrgyq 2017-09-25
讨论参见 ylgrgyq/ylgrgyq.github.io#3 - ThreadLocal & InheritableThreadLocal By synsdeng 2017-09-06
- 👍 ThreadLocal父子线程传递实现方案 By *年编程去 2016-09-30
kissss commented
感谢整理
oldratlee commented
内容 合到 第一个条中
oldratlee commented
关于FastThreadLocal
的文章
- Netty源码学习(七)FastThreadLocal
http://www.cnblogs.com/stevenczp/p/7667719.html - Netty的FastThreadLocal
https://blog.csdn.net/sun734274006/article/details/50802326 - 【源起Netty 外传】FastThreadLocal怎么Fast?
https://segmentfault.com/a/1190000012926809 - 惊:FastThreadLocal吞吐量居然是ThreadLocal的3倍!!! (Provided by @jiangxinlingdu
♥️ )
https://blog.csdn.net/lirenzuo/article/details/94495469
rotcx commented
mark
yuhaobin commented
mark
jiangxinlingdu commented
关于
FastThreadLocal
的文章
- Netty源码学习(七)FastThreadLocal
http://www.cnblogs.com/stevenczp/p/7667719.html- Netty的FastThreadLocal
https://blog.csdn.net/sun734274006/article/details/50802326- 【源起Netty 外传】FastThreadLocal怎么Fast?
https://segmentfault.com/a/1190000012926809
Plus:
- 惊:FastThreadLocal吞吐量居然是ThreadLocal的3倍!!!
https://blog.csdn.net/lirenzuo/article/details/94495469
oldratlee commented
欢迎大家继续贡献文章等TTL
相关资料 ❤️
qiujunlin commented
您好,issue里面这个链接需要修改一下。这个链接我打开好像不对
Transmittable ThreadLocal 学习 By attanwu 2018-6-27
当ThreadLocal碰上线程池 https://www.jianshu.com/p/85d96fe9358b
oldratlee commented
您好,issue里面这个链接需要修改一下。这个链接我打开好像不对 Transmittable ThreadLocal 学习 By attanwu 2018-6-27 当ThreadLocal碰上线程池 https://www.jianshu.com/p/85d96fe9358b
@qiujunlin 收到,我改一下,谢谢 ❤️
ling0900 commented
太强了!