分享

求教 storm 的Rebalance

caiyifeng 发表于 2014-12-24 10:03:53 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 7 16262
请教各位大虾一个问题:
我创建了一个topolog,设定了3个spout,每个spout根据算法发射消息,我的问题是,如果其中某个spout进程死掉,只剩下2个spout了,topology会不会自动做Rebalance处理,会不会重新执行spout中 的open()------因为我的算法是写在open中的

已有(7)人评论

跳转到指定楼层
muyannian 发表于 2014-12-24 12:23:08
执行失败是由可能的,死掉不清楚了,楼主你遇到这种情况,还是?


回复

使用道具 举报

bioger_hit 发表于 2014-12-24 12:26:28
楼主可以试试,实践出真知
回复

使用道具 举报

caiyifeng 发表于 2014-12-24 13:21:01
muyannian 发表于 2014-12-24 12:23
执行失败是由可能的,死掉不清楚了,楼主你遇到这种情况,还是?


我是要考虑这种情况的影响,因为如果一个spout 死掉后,只剩下两个spout发送消息的话,如果写在open中的算法不能动态调整的话,则会导致有部分消息无法发送出去的。
回复

使用道具 举报

muyannian 发表于 2014-12-24 14:08:26
caiyifeng 发表于 2014-12-24 13:21
我是要考虑这种情况的影响,因为如果一个spout 死掉后,只剩下两个spout发送消息的话,如果写在open中 ...
storm有自己的机制:
为了保证数据能正确的被处理, 对于spout产生的每一个tuple, storm都会进行跟踪, 这里面涉及到ack/fail的处理, 如果一个tuple处理成功, 会调用spout的ack方法, 如果失败, 会调用fail方法.

楼主,可以合理使用ack和fail方法

回复

使用道具 举报

muyannian 发表于 2014-12-24 14:11:41
这里有关他们的帖子:

Storm ack和fail机制个人经验总结
回复

使用道具 举报

chuyuan_zhou 发表于 2014-12-24 17:04:13
飘过,学习学习!
回复

使用道具 举报

ainubis 发表于 2015-3-28 15:59:30
飘过,学习学习!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条