如何访问摘要中的 TopologyContext class

How to get access to TopologyContext within an abstract class

我的目标是在整个拓扑中添加指标。在扩展 Base/Rich 螺栓 classes 的螺栓上工作正常,但我无法在扩展以下 AbstractRedisBolt class.

的螺栓中注册任何指标

我正在尝试在扩展 AbstractRedisBolt 的螺栓中获取 TopologyContext。但是,此 class 的 prepare 方法不会将拓扑上下文公开给派生的 classes。

我试图通过为上下文定义一个 class 属性 来扩展 AbstractRedisBolt class + 一个 return 的方法 属性,然而这并没有真正奏效。我最终在我的螺栓中获得了对拓扑上下文的引用,但是 context.registerMetric 操作没有注册任何指标。

谢谢,

只需覆盖 prepare() 包括调用 super class:

public class MyRedisBolt extends AbstractRedisBolt {
    private TopologyContext context = null;

    public void prepare(Map map, TopologyContext topologyContext, OutputCollector collector) {
        super.prepare(map, topologyContext, collector);
        this.context = topologContext;
    }
}