未验证 提交 934993ac 编写于 作者: 片刻小哥哥's avatar 片刻小哥哥 提交者: GitHub

辛苦了,Merge pull request #139 from DMinerJackie/feature-spell

correct spelling mistake
......@@ -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.
......
......@@ -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.
先完成此消息的编辑!
想要评论请 注册