我的目标是在整个拓扑中添加度量。在扩展基本/丰富螺栓类的螺栓上,一切都很好,但我无法在扩展以下AbstractRedisBolt
class的螺栓中注册任何度量。
我试图在扩展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;
}
}