为什么要注释掉ConsumeMessageConcurrentlyService的incCorePo

LinkedBlockingQueue没有指定size,消费线程池内线程不会自动增长。 并且注释掉了incCorePoolSize与decCorePoolSize函数,不会根据消息堆积情况来增减线程数,消费线程数会固定是ConsumeThreadMin,无法伸缩。想请教一下,这样做的目的是什么?

public class ConsumeMessageConcurrentlyService implements ConsumeMessageService {

 public ConsumeMessageConcurrentlyService(DefaultMQPushConsumerImpl defaultMQPushConsumerImpl,
    MessageListenerConcurrently messageListener) {
        //...
     this.consumeRequestQueue = new LinkedBlockingQueue<Runnable>();

     this.consumeExecutor = new ThreadPoolExecutor(
            this.defaultMQPushConsumer.getConsumeThreadMin(),
            this.defaultMQPushConsumer.getConsumeThreadMax(),
            1000 * 60,
            TimeUnit.MILLISECONDS,
            this.consumeRequestQueue,
            new ThreadFactoryImpl("ConsumeMessageThread_"));
 }

      
@Override
public void incCorePoolSize() {
    // long corePoolSize = this.consumeExecutor.getCorePoolSize();
    // if (corePoolSize < this.defaultMQPushConsumer.getConsumeThreadMax())
    // {
    // this.consumeExecutor.setCorePoolSize(this.consumeExecutor.getCorePoolSize()
    // + 1);
    // }
    // log.info("incCorePoolSize Concurrently from {} to {}, ConsumerGroup:
    // {}",
    // corePoolSize,
    // this.consumeExecutor.getCorePoolSize(),
    // this.consumerGroup);
}

@Override
public void decCorePoolSize() {
    // long corePoolSize = this.consumeExecutor.getCorePoolSize();
    // if (corePoolSize > this.defaultMQPushConsumer.getConsumeThreadMin())
    // {
    // this.consumeExecutor.setCorePoolSize(this.consumeExecutor.getCorePoolSize()
    // - 1);
    // }
    // log.info("decCorePoolSize Concurrently from {} to {}, ConsumerGroup:
    // {}",
    // corePoolSize,
    // this.consumeExecutor.getCorePoolSize(),
    // this.consumerGroup);
}

}

原提问者GitHub用户crazy-pizza

展开
收起
芬奇福贵 2023-05-26 10:57:36 109 分享 版权
1 条回答
写回答
取消 提交回答
  • corePoolSize通常是在消费者启动时确定的,通常不会改变。如果需要调整,需要根据业务消耗和机器资源增加corePoolSize

    原回答者GitHub用户odbozhou

    2023-05-26 17:20:39
    赞同 展开评论
问答分类:
问答地址:

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

还有其他疑问?
咨询AI助理