Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
阿啄debugIT
transmittable-thread-local
提交
7704dab8
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,体验更适合开发者的 AI 搜索 >>
提交
7704dab8
编写于
2月 15, 2016
作者:
oldratlee
🔥
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update requirement #57
上级
940e90ca
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
18 addition
and
7 deletion
+18
-7
docs/requirement-scenario.md
docs/requirement-scenario.md
+18
-7
docs/scenario-framework-sdk-arch.png
docs/scenario-framework-sdk-arch.png
+0
-0
未找到文件。
docs/requirement-scenario.md
浏览文件 @
7704dab8
...
...
@@ -5,9 +5,24 @@
下面是几个典型场景例子。
## 应用容器或上层框架跨应用代码给下层SDK传递信息
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
如在
`App Engine`
(
`PAAS`
)上会运行由应用提供商提供的应用(
`SAAS`
模式)。多个
`SAAS`
用户购买并使用这个应用(即
`SAAS`
应用)。
`SAAS`
应用往往是一个实例为多个
`SAAS`
用户提供服务。
-
[
1. 分布式跟踪系统
](
#1-%E5%88%86%E5%B8%83%E5%BC%8F%E8%B7%9F%E8%B8%AA%E7%B3%BB%E7%BB%9F
)
-
[
2. 应用容器或上层框架跨应用代码给下层`SDK`传递信息
](
#2-%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
)
-
[
3. 日志收集记录系统上下文
](
#3-%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
)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
## 1. 分布式跟踪系统
关于『分布式跟踪系统』可以了解一下
`Google`
的
`Dapper`
(介绍的论文:
[
中文
](
http://bigbully.github.io/Dapper-translation/
)
|
[
英文
](
http://research.google.com/pubs/pub36356.html
)
)。分布式跟踪系统作为基础设施,不会限制『使用线程池等会缓存线程的组件』,并期望对业务逻辑尽可能的透明。
## 2. 应用容器或上层框架跨应用代码给下层`SDK`传递信息
举个具体的业务场景,在
`App Engine`
(
`PAAS`
)上会运行由应用提供商提供的应用(
`SAAS`
模式)。多个
`SAAS`
用户购买并使用这个应用(即
`SAAS`
应用)。
`SAAS`
应用往往是一个实例为多个
`SAAS`
用户提供服务。
\#
另一种模式是:
`SAAS`
用户使用完全独立一个
`SAAS`
应用,包含独立应用实例及其后的数据源(如
`DB`
、缓存,etc)。
需要避免的
`SAAS`
应用拿到多个
`SAAS`
用户的数据。一个解决方法是处理过程关联好一个
`SAAS`
用户的上下文,在上下文中应用只能处理(读/写)这个
`SAAS`
用户的数据。请求由
`SAAS`
用户发起(如从
`Web`
请求进入
`App Engine`
),
`App Engine`
可以知道是从哪个
`SAAS`
用户,在
`Web`
请求时在上下文中设置好
`SAAS`
用户
`ID`
。应用处理数据(
`DB`
、
`Web`
、消息 etc.)是通过
`App Engine`
提供的服务
`SDK`
来完成。当应用处理数据时,
`SDK`
检查数据所属的
`SAAS`
用户是否和上下文中的
`SAAS`
用户
`ID`
一致,如果不一致则拒绝数据的读写。
...
...
@@ -16,7 +31,7 @@
### 上面场景使用`TTL`的整体构架
<img
src=
"
TransmittableThreadLocal
-arch.png"
alt=
"构架图"
width=
"260"
/>
<img
src=
"
scenario-framework-sdk
-arch.png"
alt=
"构架图"
width=
"260"
/>
构架涉及3个角色:容器、用户应用、
`SDK`
。
...
...
@@ -30,10 +45,6 @@
整个过程中,上下文的传递 对于
**用户应用代码**
期望是透明的。
## 2. 分布式跟踪系统
关于『分布式跟踪系统』可以了解一下
`Google`
的
`Dapper`
(介绍的论文:
[
中文
](
http://bigbully.github.io/Dapper-translation/
)
|
[
英文
](
http://research.google.com/pubs/pub36356.html
)
)。分布式跟踪系统作为基础设施,不会限制『使用线程池等会缓存线程的组件』,并期望对业务逻辑尽可能的透明。所以自己上下文的传递期望
## 3. 日志收集记录系统上下文
由于不限制用户应用使用线程池,系统的上下文需要能跨线程的传递,且不影响应用代码。
docs/
TransmittableThreadLocal
-arch.png
→
docs/
scenario-framework-sdk
-arch.png
浏览文件 @
7704dab8
文件已移动
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录