我的目标是在整个拓扑中添加度量。在扩展基本/丰富螺栓类的螺栓上,一切都很好,但我无法在扩展以下AbstractRedisBoltclass的螺栓中注册任何度量。
我试图在扩展AbstractRedisBolt的螺栓中获取拓扑上下文。但是,该类的prepare方法不会将拓扑上下文公开给派生类。
我试图通过为context定义一个类属性+一个返回该属性的方法来扩展AbstractRedisBolt类,但是这并没有真正实现。我最终在bolt中获得了对拓扑上下文的引用,但是context.registerMetric操作没有注册任何度量。
谢谢您,

最佳答案

只需覆盖prepare()包括对超级类的调用:

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;
    }
}

09-13 05:00