storm ISpout

ISpout定义了 7个方法:

1、 open(Map conf, TopologyContext context, SpoutOutputCollector collector);

初始化时被调用,提供spout运行环境

@param conf 对spout的配置

@param context 可以获得任务的信息,如task id,component id输入输出信息等

@param collector 可以发送tuple。Tuples 可以在任何时间被发送,包括 open 和 close 方法,collector 是线程安全的并且会保存    这个spout对象的实例

2、close();

Spout被shutdown时调用,不能保证一定被调用,因为可能会 kill -9 这个worker。

3、activate();

当spout 从未激活状态激活时调用,接下来会调用nextTuple方法。被激活后的 spout 也可以使之失效

4、deactivate();

spout 失效时被调用

5、nextTuple();

当storm 需要 spout 发射 tuple时调用。 方法非阻塞,因此当没有tuple要发射时,方法会直接返回。

而spout任务,又会循环调用 nextTuple, ack, 及 fail 方法,所以为了不浪费CUP,当没有tuple发射时,

尽量让nextTupe停一小会(比如一毫秒)

6、ack(Object msgId);

当 tuple 完全处理结束调用。 典型的应用就是,把消息从队列删除,避免重播

7、
fail(Object msgId);

当 tuple 处理失败时调用,典型应用就是把消息再放回队列稍后重播

时间: 2024-10-12 10:45:38

storm ISpout的相关文章

【转】Twitter Storm如何保证消息不丢失

Twitter Storm如何保证消息不丢失 发表于 2011 年 09 月 30 日 由 xumingming 作者: xumingming | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址: http://xumingming.sinaapp.com/127/twitter-storm如何保证消息不丢失/ 本文翻译自: https://github.com/nathanmarz/storm/wiki/Guaranteeing-message-processing s

使用Storm实现实时大数据分析

摘要:随着数据体积的越来越大,实时处理成为了许多机构需要面对的首要挑战.Shruthi Kumar和Siddharth Patankar在Dr.Dobb’s上结合了汽车超速监视,为我们演示了使用Storm进行实时大数据分析.CSDN在此编译.整理. 简单和明了,Storm让大数据分析变得轻松加愉快. 当今世界,公司的日常运营经常会生成TB级别的数据.数据来源囊括了互联网装置可以捕获的任何类型数据,网站.社交媒体.交易型商业数据以及其它商业环境中创建的数据.考虑到数据的生成量,实时处理成为了许多机

storm源码之storm代码结构【译】【转】

[原]storm源码之storm代码结构[译] 说明:本文翻译自Storm在GitHub上的官方Wiki中提供的Storm代码结构描述一节Structure of the codebase,希望对正在基于Storm进行源码级学习和研究的朋友有所帮助. Storm的源码共分为三个不同的层次. 首先,Storm在设计之初就考虑到了兼容多语言开发.Nimbus是一个thrift服务,topologies被定义为Thrift结构体.Thrift的运用使得Storm可以被任意开发语言使用. 其次,Stor

storm - 可靠机制

一 可靠性简介 Storm的可靠性是指Storm会告知用户每一个消息单元是否在一个指定的时间(timeout)内被完全处理.完全处理的意思是该MessageId绑定的源Tuple以及由该源Tuple衍生的所有Tuple都经过了Topology中每一个应该到达的Bolt的处理. 注: timetout 可以通过Config.TOPOLOGY_MESSAGE_TIMEOUT_SECS 来指定 Storm中的每一个Topology中都包含有一个Acker组件.Acker组件的任务就是跟踪从某个task

Twitter Storm如何保证消息不丢失

转自:http://xumingming.sinaapp.com/127/twitter-storm如何保证消息不丢失/ storm保证从spout发出的每个tuple都会被完全处理.这篇文章介绍storm是怎么做到这个保证的,以及我们使用者怎么做才能充分利用storm的可靠性特点. 一个tuple被”完全处理”是什么意思? 就如同蝴蝶效应一样,从spout发射的一个tuple可以引起其它成千上万个tuple因它而产生, 想想那个计算一篇文章中每个单词出现次数的topology. 帮助 1 2

storm入门教程 第一章 前言

转自:http://blog.linezing.com/?p=1847 storm:http://www.cnblogs.com/panfeng412/tag/Storm/ http://blog.linezing.com/?cat=92 1.1   实时流计算 互联网从诞生的第一时间起,对世界的最大的改变就是让信息能够实时交互,从而大大加速了各个环节的效率.正因为大家对信息实时响应.实时交互的需求,软件行业除了个人操作系统之外,数据库(更精确的说是关系型数据库)应该是软件行业发展最快.收益最为

storm 经常使用类

弄 <dependency> <groupId>org.apache.storm</groupId> <artifactId>storm-core</artifactId> <version>0.9.5</version> </dependency> 经常使用类 backtype.storm.topology.TopologyBuilder 用来建立topology. SpoutDeclarer backtyp

storm入门教程 第一章 前言[转]

1.1   实时流计算 互联网从诞生的第一时间起,对世界的最大的改变就是让信息能够实时交互,从而大大加速了各个环节的效率.正因为大家对信息实时响应.实时交互的需求,软件行业除了个人操作系统之外,数据库(更精确的说是关系型数据库)应该是软件行业发展最快.收益最为丰厚的产品了.记得十年前,很多银行别说实时转账,连实时查询都做不到,但是数据库和高速网络改变了这个情况. 随着互联网的更进一步发展,从Portal信息浏览型到Search信息搜索型到SNS关系交互传递型,以及电子商务.互联网旅游生活产品等将

Strom 消息处理机制 中英对照翻译 (Storm如何保证消息被完全处理)

官方链接: http://storm.incubator.apache.org/documentation/Guaranteeing-message-processing.html What does it mean for a message to be “fully processed”? A tuple coming off a spout can trigger thousands of tuples to be created based on it. Consider, for ex