码迷,mamicode.com
首页 > 其他好文 > 详细

storm的并发和消息保障性

时间:2015-04-12 14:32:31      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:

Storm并发配置的优先级:

defaults.yaml < storm.yaml < topology-specific configuration < internal  component-specific configuration < external component-specific configuration

通过下图来理解并行度的一些配置:

技术分享

消息的可靠处理机制

如何保证消息不被丢失?即什么条件下,storm会认为从一个spout发送出来的消息被完整处理了呢?

1.tuple tree不再生长

2.树中的任何消息被标识为 已处理。

同时被满足时即认为消息处理成功。

有三种方法可以去掉消息的可靠性:
1、将参数Config.TOPOLOGY_ACKERS设置为0,通过此方法,当Spout发送一
个消息的时候,它的ack方法将立刻被调用;
2、Spout发送一个消息时,不指定此消息的messageID。当需要关闭特定消息

可靠性的时候,可以使用此方法;
3、最后,如果你丌在意某个消息派生出来的子孙消息的可靠性,则此消息派生
出来的子消息在发送时丌要做锚定,即在emit方法中丌指定输入消息。因为这些
子孙消息没有被锚定在任何tuple tree中,因此他们的失败丌会引起任何spout
重新发送消息。

storm的并发和消息保障性

标签:

原文地址:http://www.cnblogs.com/huaxiaoyao/p/4419416.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!