twitter storm0.7.0新特性

原文地址:http://groups.google.com/group/storm-user/browse_thread/thread/a9b71e51b6be8f35

storm0.7.0使用了备受关注的Transactional topologies,它可以使你的消息在集群上精确的只执行一次,Transactional topologies是强大的,你可以在
这里看到详细介绍文档:https://github.com/nathanmarz/storm/wiki/Transactional-topologies

事务型拓扑需要一个比Kestrel或者RabbitMQ更复杂的消息源,storm-contrib基于Apache kafka实现了TransactionalSpout
(https://github.com/nathanmarz/storm-contrib/tree/master/storm-kafka ),现在的storm-kafka还很不完善,我希望的到更多的关于kafka的经验。

另外一个大的特点是component-specific configuations更细粒度的配置配置,可以让你对spout和bolt进行配置,
所以你可以给topology上的一个单独的bolt设置TOPLOGY_DEBUG,给不同的spout设置不同的TOPLOGY_MAX_SPOUT_PENDING值。
同样你可以在spout的实现里注册序列化,并且次序列化可以被用于所在的topology。更多的信息请看这里:https://github.com/nathanmarz/storm/wiki/Configuration

这个版本有下列不同以往api的改变
1.所有的bolt和spout的接口(IRichBolt,IRichSpout,IBasicBolt,etc)多了一个getComponentConfiguration方法,最简单的修改是
将你的bolts/spouts从实现接口变为扩展 BaseRichBolt, BaseRichSpout。
这些基础类为常用的方法提供了空的实现。(就像getComponentConfiguration)

2。 isDistributed方法从spouts中被移除,这个功能被归入到component-specific配置中。强迫一个spout作为一个单独的任务执行,而不管对它设置的并行数使用以下代码:

https://github.com/nathanmarz/storm/blob/master/src/jvm/backtype/storm/transactional/TransactionalSpoutCoordinator.java#L145
另外,在DRPC topologies中IRichBolt's已经不建议使用,建议使用更简单的BatchBolts来代替,
下面有storm-starter里的实现的例子https://github.com/nathanmarz/storm-starter/blob/master/src/jvm/storm/starter/ReachTopology.java

3.CustomStreamGrouping 的接口被修改为接收一个List<Object>而不是一个Tuple

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值