gpt4 book ai didi

java - 实现普罗米修斯时的竞争条件

转载 作者:行者123 更新时间:2023-12-01 21:39:13 25 4
gpt4 key购买 nike

我正在尝试在我的应用程序中实现自定义 Promethues 指标,我怀疑会存在竞争条件。如何避免竞争条件。

@Component
public class CustomeCounter {

Counter mycounter;

public CustomCounter(CollectorRegistry registry) {
mycounter = Counter.build().name("test").help("test").register(registry);
}

public void incrementCounter() {
mycounter.inc();
}
}


@Component
public class Test{

@Resource
private CustomCounter customCounter;

public void testInc() {
customCounter.incrementCounter();
}
}

对我来说,这看起来像是一个潜在的竞争条件。我怎样才能避免它。

最佳答案

一般来说,Prometheus 客户端库是线程安全的。我在java风格的文档中没有看到这样的保证,但有提示in the README :

  • Gauge(我希望计数器)方法是线程安全的

    Keep in mind that the default inc(), dec() and set() methods on Gauge take care of thread safety

  • 指标的创建(至少使用构建器)是线程安全的

    The labels() method looks up or creates the corresponding labelled timeseries. You might also consider storing the labelled timeseries as an instance variable if it is appropriate. It is thread safe and can be used multiple times, which can help performance.

根据您的代码,我预计不会出现其他并发问题。

关于java - 实现普罗米修斯时的竞争条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58796459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com