Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
storm-doc-zh
提交
934993ac
S
storm-doc-zh
项目概览
OpenDocCN
/
storm-doc-zh
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
storm-doc-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
934993ac
编写于
9月 11, 2019
作者:
片刻小哥哥
提交者:
GitHub
9月 11, 2019
浏览文件
操作
浏览文件
下载
差异文件
辛苦了,Merge pull request #139 from DMinerJackie/feature-spell
correct spelling mistake
上级
93e17e1b
b5822c6a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
2 addition
and
2 deletion
+2
-2
docs/2.md
docs/2.md
+1
-1
docs/5.md
docs/5.md
+1
-1
未找到文件。
docs/2.md
浏览文件 @
934993ac
...
...
@@ -73,7 +73,7 @@ Bolt 中最主要的方法是 `execute` 方法, 当有一个新 Tuple 输入的
topology(拓扑)定义中有一部分是为每一个 bolt 指定输入的 streams . stream grouping 定义了stream 如何在 Bolts tasks 之间分区.
Storm 中一共有8个内置的 Stream Grouping. 可
聂
以通过实现
[
CustomStreamGrouping
](
javadocs/org/apache/storm/grouping/CustomStreamGrouping.html
)
接口来自定义 Stream groupings.
Storm 中一共有8个内置的 Stream Grouping. 可以通过实现
[
CustomStreamGrouping
](
javadocs/org/apache/storm/grouping/CustomStreamGrouping.html
)
接口来自定义 Stream groupings.
1.
**Shuffle grouping**
: Tuple 随机的分发到 Bolt Task, 每个 Bolt 获取到等量的 Tuple.
2.
**Fields grouping**
: streams 通过 grouping 指定的字段来分区. 例如流通过 "user-id" 字段分区, 具有相同 "user-id" 的 Tuple 会发送到同一个task, 不同 "user-id" 的 Tuple 可能会流入到不同的 tasks.
...
...
docs/5.md
浏览文件 @
934993ac
...
...
@@ -46,7 +46,7 @@ public interface ISpout extends Serializable {
_collector.emit(new Values("field1", "field2", 3) , msgId);
```
下一步,tuple被发送到消费的 bolts中,Storm 开始监控创建的 the tree of messages。如果 Storm 检测到 tuple被完全处理,Storm 会在原来的 Spout 上根据message id 调用 ack 方法.同样的,如果处理 tuple超时了,Storm会
调用
在
`Spout`
上调用
`fail`
方法.由于 tuple ack或者fail,都原来创建这个tuple 的 Spout task调用.所以如果一个
`Spout`
在集群上运行很多任务,tuple 不会被多个
`Spout`
任务 acked 或者 failed.
下一步,tuple被发送到消费的 bolts中,Storm 开始监控创建的 the tree of messages。如果 Storm 检测到 tuple被完全处理,Storm 会在原来的 Spout 上根据message id 调用 ack 方法.同样的,如果处理 tuple超时了,Storm会在
`Spout`
上调用
`fail`
方法.由于 tuple ack或者fail,都原来创建这个tuple 的 Spout task调用.所以如果一个
`Spout`
在集群上运行很多任务,tuple 不会被多个
`Spout`
任务 acked 或者 failed.
我们再通过
`KestrelSpout`
来看看
`Spout`
需要保证消息处理那些情况.当
`KestrelSpout`
从 Kestrel queue中读取消息的时候,它只是 "open" 了message.这意味着消息并没有真正从队列出来,而是处于一种 “pending” 状态,承认message 已经完成.在这种 pending 状态的时候,message不会将消息发送到队列的其他用 consumer.此外,如果客户端断开所有 pending 状态的消息,那么客户端将把消息放回到队列.当一条 message opened后,Kestrel 向客户端提供消息,并提供一个唯一性的id标识消息. 当发送 tuple 到 SpoutOutputCollector的时候,就用Kestrel 提供的id 作为 “message id”。当 KestrelSpout 调用 ack或者fail的时候,KestrelSpout会向Kestrel 发送一条ack 或者 fail消息,包括 message id,以让Kestrel 将消息从队列中取出,或者放回去.
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录