【问题标题】:Apache storm static variable reference from bolt来自螺栓的 Apache Storm 静态变量引用
【发布时间】:2021-08-17 10:43:10
【问题描述】:

我的 Storm 拓扑中的 Bolt 引用了实用程序类中的静态变量,并且对于在工作进程上处理的每个元组,该静态变量是否保持相同。

【问题讨论】:

  • 为什么要改变?
  • 实际上我将它声明为静态,并且如果它已经初始化,则有条件不更新该静态变量。但在我的例子中,这个值会根据元组的内容而改变。所以,我认为检查它是否已初始化的条件不是一个好主意。因为它将保存基于流向此任务的第一个元组的值,并且相同的值将可用于流向此任务的所有后续元组。对吗?
  • 由于它在运行时发生变化,它不应该被声明为静态的,我会说..?但是也许您可以共享代码-这将有助于理解。你试过了吗?
  • 任务线程将一直留在那里,直到线程出现一些问题并且为任务分配了新线程。所以,我的场景中的静态变量不会被使用。因此,将逻辑更改为没有静态变量。

标签: java apache-storm apache-storm-topology


【解决方案1】:

任务不是为每个元组创建的。一旦在执行线程上启动任务,元组将流向该任务。因此,静态变量将在元组之间共享。

任务线程将一直留在那里,直到线程出现问题并且为任务分配了新线程。所以,我的场景中的静态变量不会被使用。因此,将逻辑更改为没有静态变量。

【讨论】:

    猜你喜欢
    • 2014-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多