Storm如何保证可靠的消息处理

转自 http://www.cnblogs.com/Jack47/p/guaranteeing-message-processing-in-storm.html

内容简介
Storm可以保证从Spout发出的每个消息都能被完全处理。Storm的可靠性机制是完全分布式的(distributed),可伸缩的(scalable),容错的(fault-tolerant)。本文介绍了Storm如何保证可靠性以及作为Storm使用者,我们需要怎么做,才能充分利用Storm的可靠性。理解一些实现细节,也能够帮助我们领悟Storm的设计理念。

PS:本文用到了Storm的一些基本概念,例如Bolt,任务(Task),元组(Tuple),如果不清楚这些概念,可以参看我之前写的文章:Storm介绍(一),理解Storm并发。下文中元组(Tuple),跟消息(message)是等价的,Storm中处理的消息是用元组这种数据结构来表示的。

一个消息被完整处理是什么意思?
流式计算单词个数的例子

考虑如下的流式计算文章中单词个数的拓扑:

TopologyBuilder builder = new TopologyBuilder();

builder.setSpout(“sentences”, new KestrelSpout(“kestrel.backtype.com”, 22133, “sentence_queue”, new StringScheme()));

builder.setBolt(“split”, new SplitStentence(), 10).shuffleGrouping(“sentences”);
builder.setBolt(“count”, new WordCount(), 20).fieldsGrouping(“split”, new Fields(“word”));
这个拓扑由3个处理单元组成:一个叫”sentences”的Spout,负责从Kestrel队列中读取句子并作为新的Spout元组发送出去。名称为”split”的Bolt是Spout元组的下游消费方,它把接收到句子切分成单词并发送出去。名称为”count”的Bolt是”split” Bolt的下游消费方,它使用HashMap

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值