监视 Netty 事件循环队列的大小
我们已经实现了对 Netty 事件循环队列的监控,以便了解某些 Netty 模块的问题。监视器使用该方法,该方法适用于大多数模块,但对于每秒处理几千个HTTP请求的模块,它似乎被挂起或非常慢。我现在意识到文档严格指定这可能是一个问题,我感觉很蹩脚......所以我正在寻找另一种方法来实现此监视器。io.netty.util.concurrent.SingleThreadEventExecutor#pendingTasks
  public static void registerQueueGauges(final MetricFactory factory, final EventLoopGroup elg, final String componentName) {
    int index = 0;
    for (final EventExecutor eventExecutor : elg) {
      if (eventExecutor instanceof SingleThreadEventExecutor) {
        final SingleThreadEventExecutor singleExecutor = (SingleThreadEventExecutor) eventExecutor;
        factory.registerGauge("EventLoopGroup-" + componentName, "EventLoop-" + index, new Gauge<Integer>() {
          @Override
          public Integer getValue() {
            return singleExecutor.pendingTasks();
          }
        });
        index++;
      }
    }
  }
我的问题是,有没有更好的方法来监视队列大小?
这可能是一个非常有用的指标,因为它可用于了解延迟,并且在某些情况下也可用于施加背压。
 
					 
				 
				    		 
				    		