文档章节

Spout 【API 解析】 -spout-bolt-

止静
 止静
发布于 2014/06/25 15:21
字数 410
阅读 189
收藏 0

Component


在Storm 之中,Spout 和Bolt 都是其Compnent, 所以在Storm之中定义了一个名叫 IComponent

的总接口


Spout

在前面的基本例子中,我们实现了一个RandomSout,来看看其类图


Spout的最顶级的抽象是ISpout接口


有关如下的API  

1:oepn 方法是初始化动作: 允许你在该spout 初始化时做一些动作,传入了上写文,也方便娶上下文的一些数据


2 :close 方法在该Spout 关闭前执行,但是并不能得到保证其一定会执行,spout是作为task 运行,在worker内的,在

clouster 集群之下,我们的 supervisor 会直接kill掉 ,这样它就有可能不会允许, 而在本地的模式之下,只要不是kill -9,如果是发送停止命令,是可以保证close的执行的。

3 : Activate

4 :deactivate

5: nextTuple                       : nextTuple 用来发送数据

6 ack ( Object )                   : Ack 传入的Object其实是一个id. 表示唯一一个tuple 

7 fail ( Object )

由于继承了BaseRichSpout, 所以不用实现 close,activate,deactivate,ack,fail

等方法。


结论:

        在通常的情况之下,(Shel 和事物型的除外),实现一个Spout,可以直接的去实现IRichSpout

如果不想写IRIchSpout代码,可以继承自BaseRichSpout



Bolt

ExclaimBasicBolt的类图

Ibolt 继承了java.io.Serializable 我们在nimbus上提交了topology

execute 接受一个tuple进行处理,并在prepare 方法传入的 ACK方法,或者fail方法表示来反馈处理的结果


通常情况之下,他实际上相当于自动做掉prepare方法和collector.emit.ack(inputTupe);

© 著作权归作者所有

止静
粉丝 122
博文 134
码字总数 125762
作品 0
东城
技术主管
私信 提问
加载中

评论(1)

孙暖阳
孙暖阳
感谢!
建议您改下错别字
在Storm 之中,Spout 和Bolt 都***死***其Compnent
storm 可靠性和非可靠性

我们知道Storm有一个很重要的特性,那就是Storm API能够保证它的一个Tuple能够被完全处理,这一点尤为重要,其实storm中的可靠性是由spout和bolt组件共同完成的,下面就从spout和bolt两个方便...

张欢19933
2016/12/16
77
0
JStorm如何保证消息不丢失

Storm的acker机制,能够保证消息至少被处理一次(at least once)。也就是说,能够保证不丢消息。这里就详细解析一下acker的实现原理。 消息流 假设我们有一个简单的topology,结构为spout -...

李雷岗
2016/11/24
63
0
Strom-(2)核心应用开发

Storm中,Spout和Bolt都是Component。Storm定义了一个名叫IComponent的总接口 ØSpout的最顶层抽象是ISpout接口。 通常情况下(Shell和事务型的除外),实现一个Spout,可以直接实现接口IRi...

xiongsheng
2016/03/04
57
0
好程序员大数据学习笔记:Storm架构

  好程序员分享大数据学习笔记:Storm架构,Storm架构:master/slave   主节点:Nimbus   负责在集群上进行任务(Topology)的分发与资源的调度以及监控   工作节点:Supervisor   接收...

好程序员IT
2019/06/10
6
0
storm可靠机制

一 可靠性 简介 Storm的可靠性是指Storm会告知用户每一个消息单元是否在一个指定的时间(timeout)内被完全处理。 完全处理的意思是该MessageId绑定的源Tuple以及由该源Tuple衍生的所有Tuple都...

张欢19933
2016/01/26
158
0

没有更多内容

加载失败,请刷新页面

加载更多

Bettertouchtool for Mac(触摸板增强工具) v3.225

Bettertouchtool Mac是一个MacOS上的触摸板增强工具,当然,你也可以称它为鼠标增强软件!Bettertouchtool实现不用点击而是触摸的方式操作。支持多种手势,1个,2个,3个手指的操作,支持缩放...

云不若
32分钟前
5
0
如何在MySQL中执行正则表达式替换?

我有一张约有50万行的表格; varchar(255)UTF8列filename包含一个文件名; 我正在尝试从文件名中去除各种奇怪的字符-以为我会使用字符类: [^a-zA-Z0-9()_ .\\-] 现在, MySQL中是否有一个...

技术盛宴
38分钟前
9
0
如何将存储卡转换为DVD

将存储卡转换为DVD是一项非常简单的任务,因为您只需要使用一些软件:读卡器,DVD和DVD刻录机以及软件即可。做好准备后,您现在就可以将文件传输到所需的目的地。但是,如果要使您的文件看起...

麦克虾仔
45分钟前
5
0
Elasticsearch 开箱指南

内容概要 ES 基础介绍,重点是其中的核心概念。 基础 API 实践操作。 1. 基础介绍 Elasticsearch (ES) 是一个数据库,提供了分布式的、准实时搜索和分析。 基于 Apache Lucene,可以操作结构...

性能与架构
47分钟前
7
0
聚合支付平台的安全防护 防止被攻击篡改的2020年方案篇

临近春节,某聚合支付平台被攻击篡改,导致客户提现银行卡信息被修改,支付订单被恶意回调,回调API接口的数据也被篡改,用户管理后台被任意登入,商户以及码商的订单被自动确认导致金额损失...

网站安全
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部