你能问我,谁使用storm IEventLogger 接口来记录事件值。我不明白,它是如何在一些自定义 Java 应用程序中使用的。它会使用一些线程还是应用线程?我们需要如何获取/设置storm config和TopologyContext ...等 http://storm.apache.org/releases/1.0.3/Eventlogging.html(扩展事件日志)
问问题
91 次
1 回答
0
您可以在设置拓扑时在配置中注册它。https://github.com/apache/storm/blob/80cc88112bf4fab34571ebff03782b759d112288/storm-core/src/jvm/org/apache/storm/Config.java#L2412
编辑:为了提供更多细节,您的事件记录器将作为 EventLoggerBolt 的一部分运行(https://github.com/apache/storm/blob/1.x-branch/storm-core/src/jvm/org/ apache/storm/metric/EventLoggerBolt.java),如果您将 topology.eventlogger.executors 设置为非 0 值,Storm 会自动添加到您的拓扑中。如您所见,bolt 将调用事件记录器上的 prepare 方法,因此您将有机会从那里获取拓扑配置和上下文。
编辑 2:我注意到您使用的是 Storm 1.0.3。您需要升级到更高的 Storm 版本,我引用的方法在该版本中不存在。
于 2018-02-03T18:26:47.230 回答