Storm 拓扑可以包含循环吗?

Posted

技术标签:

【中文标题】Storm 拓扑可以包含循环吗?【英文标题】:Can Storm topologies contain cycles? 【发布时间】:2018-02-16 19:01:54 【问题描述】:

我最近一直在阅读有关 Apache Storm 的论文。据我了解,它基于操作和数据流的有向无环图。

但是,在Storm@Twitter 中它说:

请注意,Storm 拓扑可以有循环。

它如何适用于 DAG 的定义?

【问题讨论】:

【参考方案1】:

Storm 不会阻止您在拓扑中创建循环。示例:

builder.setSpout("word", new TestWordSpout(), 10);
builder.setBolt("exclaim1", new ExclamationBolt(), 3)
    .shuffleGrouping("word")
    .shuffleGrouping("exclaim2");
builder.setBolt("exclaim2", new ExclamationBolt(), 2).shuffleGrouping("exclaim1");

另见https://groups.google.com/forum/#!topic/storm-user/EjN1hU58Q_8。循环似乎不是一个好主意,如果它们被普遍使用,我会感到惊讶。

【讨论】:

我从未说过它确实如此,我说过那篇论文提到它是可能的,对我来说,这似乎是有向无环图中不允许的。这就是我想要理解的。 你是对的,DAG 不能有循环。因此,一些拓扑图不是 DAG。不过,拓扑图通常是 DAG,而创建循环图的能力在我看来是“碰巧起作用”。 Storm 需要 DAG 的领域是关于元组跟踪。看看storm.apache.org/releases/2.0.0-SNAPSHOT/…。

以上是关于Storm 拓扑可以包含循环吗?的主要内容,如果未能解决你的问题,请参考以下文章

storm基本概念

Apache Storm Trident - 动态创建拓扑

将 C# Storm 拓扑部署到本地/本地 Storm 集群

storm配置

Storm篇--Storm并发机制

部署后的 Apache Storm JAR 访问