当前位置: 首页 > 知识库问答 >
问题:

如何在Apache Storm中存储所有喷点和螺栓都可以访问的变量?

田昊天
2023-03-14

我考虑过使用redis,但想知道这是最好的方法还是有其他方法?任何地方都有代码示例吗?我在谷歌上搜索,但找不到很多有用的信息。

共有1个答案

越麒
2023-03-14

首先,没有办法在Storm上的任务之间共享变量。

您可以定义自己的“控制”消息,并将其发送给Bolts,以了解Spout没有要发出的消息,而不是直接共享该标志。

与Redis共享状态是一个可能的选项(您需要实现自己的逻辑),但是标志值可能会闪烁,所以您可能需要处理它。

 类似资料:
  • 在我的拓扑中,当元组从spout转移到bolt或从bolt转移到bolt时,我看到大约1-2 ms的延迟。我使用纳秒时间戳来计算延迟,因为整个拓扑运行在单个Worker中。拓扑是在集群中运行的,集群运行在具有生产能力的硬件中。 根据我的理解,在这种情况下,元组不需要序列化/反序列化,因为所有东西都在单个JVM中。我已经将大多数喷流和螺栓的并行性提示设置为5,并且喷流仅以每秒100的速率产生事件。我

  • 因此,如果您使用基于JUnit的单元测试,是否建议您运行一个小型模拟拓扑(?)并测试该拓扑下的(或)的隐含契约?或者,是否可以使用JUnit,但这意味着我们必须仔细模拟Bolt的生命周期(创建它、调用、嘲弄等)?在这种情况下,被测类(螺栓/喷口)有哪些一般的测试点需要考虑? 其他开发人员在创建正确的单元测试方面做了什么? 我注意到有一个拓扑测试API(参见:https://github.com/x

  • 我正在本地开发一个Storm拓扑。我正在使用Storm 0.9.2孵化,并开发了一个简单的拓扑。当我使用LocalCluster()选项部署它时,它工作得很好,但它不会显示在我的Storm UI中,它只是执行而已。 当我定期部署它时,它会在我的Storm UI中显示拓扑结构,但当我单击它时,不会看到喷口或螺栓。 我还尝试了许多Storm启动项目中的示例WordCountTopology。同样的行为

  • 假设我在Storm集群中有2个喷口和3个螺栓,并且有两个工人节点。这些喷口和螺栓将在这些工人之间共享(例如第一个工人有1个喷口和2个螺栓,第二个工人有1个喷口和1个螺栓)还是每个工人有2个喷口和3个螺栓,最终在整个集群中有4个喷口和6个螺栓?

  • 我实现了一个从Kafka队列读取消息的heron拓扑。因此,我的拓扑有一个kafka喷口和一个计算从队列读取的消息数的bolt。

  • 我对Apache Storm有一个奇怪的问题。我有一个Kafka连接到Kafka集群,里面有10条消息。 螺栓接收每条消息并正确处理,因为在Storm UI中,螺栓被列为“已确认”。然而,storm UI下面列出的喷口表示所有元组都失败了。 我相信这会导致喷口再次发出所有的信息。。。因此,我看到一个Storm螺栓打印出消息1-10,然后以相同的顺序一次又一次地打印出来。 我适当地调用了和方法,我只