Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
阿啄debugIT
transmittable-thread-local
提交
57e28625
T
transmittable-thread-local
项目概览
阿啄debugIT
/
transmittable-thread-local
与 Fork 源项目一致
从无法访问的项目Fork
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
transmittable-thread-local
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
57e28625
编写于
8月 26, 2019
作者:
oldratlee
🔥
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add requirement scenario
上级
3eef6844
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
21 addition
and
4 deletion
+21
-4
README.md
README.md
+2
-1
docs/requirement-scenario.md
docs/requirement-scenario.md
+19
-3
未找到文件。
README.md
浏览文件 @
57e28625
...
...
@@ -69,7 +69,8 @@
1.
分布式跟踪系统
2.
日志收集记录系统上下文
3.
应用容器或上层框架跨应用代码给下层
`SDK`
传递信息
3.
`Session`
级
`Cache`
4.
应用容器或上层框架跨应用代码给下层
`SDK`
传递信息
各个场景的展开说明参见子文档
[
需求场景
](
docs/requirement-scenario.md
)
。
...
...
docs/requirement-scenario.md
浏览文件 @
57e28625
...
...
@@ -14,7 +14,8 @@
-
[
🌵 2. 日志收集记录系统上下文
](
#-2-%E6%97%A5%E5%BF%97%E6%94%B6%E9%9B%86%E8%AE%B0%E5%BD%95%E7%B3%BB%E7%BB%9F%E4%B8%8A%E4%B8%8B%E6%96%87
)
-
[
`Log4j2 MDC`的`TTL`集成
](
#log4j2-mdc%E7%9A%84ttl%E9%9B%86%E6%88%90
)
-
[
`Logback MDC`的`TTL`集成
](
#logback-mdc%E7%9A%84ttl%E9%9B%86%E6%88%90
)
-
[
🛁 3. 应用容器或上层框架跨应用代码给下层`SDK`传递信息
](
#-3-%E5%BA%94%E7%94%A8%E5%AE%B9%E5%99%A8%E6%88%96%E4%B8%8A%E5%B1%82%E6%A1%86%E6%9E%B6%E8%B7%A8%E5%BA%94%E7%94%A8%E4%BB%A3%E7%A0%81%E7%BB%99%E4%B8%8B%E5%B1%82sdk%E4%BC%A0%E9%80%92%E4%BF%A1%E6%81%AF
)
-
[
👜 3. `Session`级`Cache`
](
#-3-session%E7%BA%A7cache
)
-
[
🛁 4. 应用容器或上层框架跨应用代码给下层`SDK`传递信息
](
#-4-%E5%BA%94%E7%94%A8%E5%AE%B9%E5%99%A8%E6%88%96%E4%B8%8A%E5%B1%82%E6%A1%86%E6%9E%B6%E8%B7%A8%E5%BA%94%E7%94%A8%E4%BB%A3%E7%A0%81%E7%BB%99%E4%B8%8B%E5%B1%82sdk%E4%BC%A0%E9%80%92%E4%BF%A1%E6%81%AF
)
-
[
上面场景使用`TTL`的整体构架
](
#%E4%B8%8A%E9%9D%A2%E5%9C%BA%E6%99%AF%E4%BD%BF%E7%94%A8ttl%E7%9A%84%E6%95%B4%E4%BD%93%E6%9E%84%E6%9E%B6
)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
...
...
@@ -49,7 +50,7 @@ PS: 多谢 [@wyzssw](https://github.com/https://github.com/wyzssw) 对分布
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
log4j2-ttl-thread-context-map
</artifactId>
<version>
1.
2
.0
</version>
<version>
1.
3
.0
</version>
</dependency>
```
...
...
@@ -76,7 +77,22 @@ PS: 多谢 @bwzhang2011 和 @wuwen5 对日志场景说明交流和实现上讨
这个集成已经在
**_线上产品环境_**
使用的。说明详见
[
欧飞网的使用场景
](
https://github.com/alibaba/transmittable-thread-local/issues/73#issuecomment-300665308
)
。
## 🛁 3. 应用容器或上层框架跨应用代码给下层`SDK`传递信息
## 👜 3. `Session`级`Cache`
对于计算逻辑复杂业务流程,基础数据读取服务(这样的读取服务往往是个外部远程服务)可能需要多次调用,期望能缓存起来,以避免多次重复执行高成本操作。
同时,在入口发起不同的请求,处理的是不同用户的数据,所以不同发起请求之间不需要共享数据,这样也能避免请求对应的不同用户之间可能的数据污染。
因为涉及多个上下游线程,其实是
`Session`
级缓存。
通过
`Session`
级缓存可以
-
避免重复执行高成本操作,提升性能。
-
避免不同
`Session`
之间的数据污染。
更多讨论与使用方式参见
[
**_`@olove`_**
](
https://github.com/olove
)
提的Issue:
[
讨论:Session级Cache场景下,TransmittableThreadLocal的使用
](
https://github.com/alibaba/transmittable-thread-local/issues/122
)
。
## 🛁 4. 应用容器或上层框架跨应用代码给下层`SDK`传递信息
举个具体的业务场景,在
`App Engine`
(
`PAAS`
)上会运行由应用提供商提供的应用(
`SAAS`
模式)。多个
`SAAS`
用户购买并使用这个应用(即
`SAAS`
应用)。
`SAAS`
应用往往是一个实例为多个
`SAAS`
用户提供服务。
\#
另一种模式是:
`SAAS`
用户使用完全独立一个
`SAAS`
应用,包含独立应用实例及其后的数据源(如
`DB`
、缓存,etc)。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录