使用 Storm IEventLogger 将事件记录到 DB

Posted

技术标签:

【中文标题】使用 Storm IEventLogger 将事件记录到 DB【英文标题】:Using storm IEventLogger for logging events into DB 【发布时间】:2018-01-31 11:57:15 【问题描述】:

你能问我,谁使用storm IEventLogger 接口来记录事件值。我不明白,它是如何在一些自定义 Java 应用程序中使用的。它会使用一些线程还是应用线程?我们需要如何获取/设置storm config和TopologyContext ...等。 http://storm.apache.org/releases/1.0.3/Eventlogging.html(扩展事件记录)

【问题讨论】:

【参考方案1】:

您可以在设置拓扑时在配置中注册它。 https://github.com/apache/storm/blob/80cc88112bf4fab34571ebff03782b759d112288/storm-core/src/jvm/org/apache/storm/Config.java#L2412

编辑: 为了提供更多细节,如果您将 topology.eventlogger.executors 设置为非 0 值,您的事件记录器将作为 EventLoggerBolt (https://github.com/apache/storm/blob/1.x-branch/storm-core/src/jvm/org/apache/storm/metric/EventLoggerBolt.java) 的一部分运行,Storm 会自动添加到您的拓扑中。如您所见,bolt 将调用事件记录器上的 prepare 方法,因此您将有机会从那里获取拓扑配置和上下文。

编辑 2: 我注意到您使用的是 Storm 1.0.3。您需要升级到更高的 Storm 版本,我引用的方法在该版本中不存在。

【讨论】:

以上是关于使用 Storm IEventLogger 将事件记录到 DB的主要内容,如果未能解决你的问题,请参考以下文章

Azure Storm 与 A​​zure 流分析

storm学习笔记

Flink与storm的主要区别译文。

Storm官方文档翻译之创建Storm项目

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

Storm集成Siddhi