Apache Ignite和Apache Storm在许多方面都是截然不同的技术。特别是因为Storm有一个非常特定的用例,而Ignite则集成了相当多的工具。据我所知,Ignite的核心是其内存存储。在此基础上构建了数据局部性敏感计算,并支持各种酷炫的"玩具"。我感兴趣的是流式功能,它基本上是一个查询监听器,监控内存缓存中的更改。
如果我将滑动窗口设置为一个元组,那么Ignite像Storm一样会提供一次处理一个元组的功能,数据会被Ignite存储在内存中。Storm并没有在内存中“存储”数据,但元组也当然存储在内存中。因此,在这两种情况下都可以进行流式处理,数据存储在内存中,且可以分布式计算。
我觉得,在Storm中编写多步数据转换程序可能会更容易些,因为两种技术都有抽象化。对此有何看法?
第二个问题:性能如何?我猜Ignite的数据局部性可能会给它带来优势。另一方面,我认为Storm可能更适合于多步骤的分布式计算(不同机器上的不同bolts),而Ignite程序可能不太容易拆分。
如果我仍然想要分发流(不仅是按数据,还有步骤在不同的机器上)。那么我想我必须编写多个Ignite流处理器,并通过缓存进行通信,对吗?这听起来比在Storm中编写要困难得多(这又回到了第一个问题)。