【发布时间】:2016-02-29 10:18:03
【问题描述】:
Apache Ignite 和 Apache Storm 在许多方面是两种截然不同的技术 - 特别是因为 Storm 有一个非常具体的用例,而 Ignite 在一个屋檐下拥有相当多的工具集。据我了解,Ignite 的核心是它的内存存储。建立在此之上的是其对数据局部性敏感的计算。建立在上面的是各种很酷的“玩具”。我感兴趣的是 Streaming 功能,它基本上是一个查询不断变化的内存缓存的侦听器。
如果我将滑动窗口设置为一个元组,Ignite 会像 Storm 一样提供一次一个元组的功能。数据由 Ignite 存储在内存中。 Storm 不会在内存中“存储”数据,但元组当然也存储在内存中。因此,在这两种情况下,我都有流式传输,并且我在内存中有数据,我能够分发我的计算。
我感觉编写执行许多数据转换步骤的程序可能更容易在 Storm 中编写,因为这两种技术都是抽象的。这有什么好说的?
第二个问题:性能怎么样?我猜想 Ignite 的数据本地化可能会给它带来优势。另一方面,我认为多个步骤可能更好地分布在 Storm 中(各种机器上的不同螺栓),而 Ignite 程序可能不会那么容易拆分。
如果我仍然想分发流(不仅是每个数据,还包括不同机器上的步骤)。我想我必须编写多个 Ignite 流媒体,它们通过缓存进行通信,对吧?这听起来比在 Storm 中更难写(让我们回到第一个问题)。
【问题讨论】:
标签: apache-storm ignite