我正在与Storm一起工作,很多用例都很好。最近我看了一下Trident,这是Storm的一个高级抽象。它完全支持一次处理并使状态处理更容易。风暴与三叉戟:什么时候不使用三叉戟?
但现在我想知道..为什么我不能总是使用三叉戟代替风暴?
我至今读什么:
- 三叉戟处理批量处理邮件,所以生产时间可能会更长。
- Trident尚未能够在拓扑中处理循环。
使用Trident而不是Storm有什么其他的缺点吗?因为现在,我认为上面列出的缺点是微不足道的。
Trident无法实现哪些用例?
后果:
因为我问的问题我公司决定去三叉戟第一。当出现性能问题时,我们只会使用纯风暴。可悲的是,这不是一个积极的决定,它只是成为默认行为(当时我并不在)。
他们的假设是,在大多数使用情况下,我们需要进行状态处理或者只进行一次处理,否则我们将在不久的将来需要它。我理解他们的推理,因为从风暴转移到三叉戟或后退并不是一个容易的转换,但在我个人看来,没有状态的流处理概念并不是所有人都能理解的,这也是使用Trident的主要原因。
我想你误会:三叉戟的东西,在上面运行风暴,并取代了事务拓扑的旧概念。当然,如果你喜欢,你可以使用Trident而不是核心Storm。 – 2013-03-20 18:44:41
嗨戈登,我知道三叉戟运行在风暴之上。正因为如此,我想知道为什么我要暴风雨。它看起来像只有一些不常见的用例需要Storm的低级API。 – 2013-03-21 08:05:48
正如我所了解的那样,当你有数百万事件时,批处理时间并不是很长(我想是秒的一部分),但是数据库负载减少了。我认为可以实现一些超时并有额外的事件。 是的,三叉戟是风暴的高级抽象,你可以也应该使用风暴API来定制一些东西。 – Alex 2013-04-05 10:10:26