首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法监控resilience4j线程池?

有没有办法监控resilience4j线程池?
EN

Stack Overflow用户
提问于 2021-03-19 08:35:53
回答 1查看 53关注 0票数 1

我正在试验resilience4j和调整配置,以优化负载下的性能。我正在利用的一个功能是使用线程池隔板,并使用所述线程池异步执行函数。有没有办法可以监控线程池的状态?我要找的东西应该是:

代码语言:javascript
复制
logger.debug(threadPoolBulkhead.getNumActiveThreads());

logger.debug(threadPoolBulkhead.getNumQueuedThreads());

这样的事情有可能发生吗?

EN

回答 1

Stack Overflow用户

发布于 2021-03-19 08:51:31

指标,以编程方式

您可以自己以编程方式获取所需的指标:ThreadPoolBulkhead#getMetrics

通过千分尺或下拉向导指标实现的指标

您可以通过指标监视当前状态,因为resilience4j本身支持微米,并提供您感兴趣的指标,即使in the docs没有明确提到这一点。Proof here.

代码语言:javascript
复制
MeterRegistry meterRegistry = new SimpleMeterRegistry();
ThreadPoolBulkheadRegistry bulkheadRegistry = ThreadPoolBulkheadRegistry.ofDefaults();
ThreadPoolBulkhead bulkhead = bulkheadRegistry.bulkhead("backendA");

// Register all retries at once
TaggedThreadPoolBulkheadMetrics
  .ofThreadPoolBulkheadRegistry(bulkheadRegistry)
  .bindTo(meterRegistry);

事件

您可以注册防弹头事件的侦听器,以便在执行/完成调用时收到通知:https://resilience4j.readme.io/docs/bulkhead#consume-emitted-bulkheadevents

代码语言:javascript
复制
bulkhead.getEventPublisher()
    .onCallPermitted(event -> logger.info(...))
    .onCallRejected(event -> logger.info(...))
    .onCallFinished(event -> logger.info(...));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66701052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档