【发布时间】:2021-08-17 10:43:10
【问题描述】:
我的 Storm 拓扑中的 Bolt 引用了实用程序类中的静态变量,并且对于在工作进程上处理的每个元组,该静态变量是否保持相同。
【问题讨论】:
-
为什么要改变?
-
实际上我将它声明为静态,并且如果它已经初始化,则有条件不更新该静态变量。但在我的例子中,这个值会根据元组的内容而改变。所以,我认为检查它是否已初始化的条件不是一个好主意。因为它将保存基于流向此任务的第一个元组的值,并且相同的值将可用于流向此任务的所有后续元组。对吗?
-
由于它在运行时发生变化,它不应该被声明为静态的,我会说..?但是也许您可以共享代码-这将有助于理解。你试过了吗?
-
任务线程将一直留在那里,直到线程出现一些问题并且为任务分配了新线程。所以,我的场景中的静态变量不会被使用。因此,将逻辑更改为没有静态变量。
标签: java apache-storm apache-storm-topology