版本:4.2.0,源码:class文件
broker的快速失败机制是为了防止请求过载,导致broker处理请求效率变低,从而影响消息的消费
broker启动的时候会初始化brokerFastFailure
this.brokerFastFailure = new BrokerFastFailure(this);
this.brokerFastFailure.start();
brokerFastFailure
public void start() { this.scheduledExecutorService.scheduleAtFixedRate(new Runnable() { public void run() { if (BrokerFastFailure.this.brokerController.getBrokerConfig().isBrokerFastFailureEnable()) { // 每10秒一次清理过期的请求 BrokerFastFailure.this.cleanExpiredRequest(); } } }, 1000L, 10L, TimeUnit.MILLISECONDS); }
private void cleanExpiredRequest() { while(true) { // pageCachebusy会断开producer部分请求,减少消息发送 if (this.brokerController.getMessageStore().isOSPageCacheBusy()) { try { if (!this.brokerController.getSendThreadP