Skip to content

Commit 8bdd97e

Browse files
committed
Make HashedWheelTimer parameters configurable in QueueLevelConsumerOrderInfoLockManager
- Add popOrderLockTimerTickMs and popOrderLockTimerTicksPerWheel to BrokerConfig - Replace hardcoded TIMER_TICK_MS constant with configurable values from BrokerConfig - Remove unused field consumerOrderInfoManager - Default values (tickMs=100, ticksPerWheel=512) preserve backward compatibility
1 parent 051ba27 commit 8bdd97e

2 files changed

Lines changed: 23 additions & 3 deletions

File tree

broker/src/main/java/org/apache/rocketmq/broker/pop/orderly/QueueLevelConsumerOrderInfoLockManager.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,18 +35,18 @@
3535

3636
public class QueueLevelConsumerOrderInfoLockManager {
3737
private static final Logger POP_LOGGER = LoggerFactory.getLogger(LoggerName.ROCKETMQ_POP_LOGGER_NAME);
38-
private ConsumerOrderInfoManager consumerOrderInfoManager;
3938

4039
private final BrokerController brokerController;
4140
private final Map<Key, Timeout> timeoutMap = new ConcurrentHashMap<>();
4241
private final Timer timer;
43-
private static final int TIMER_TICK_MS = 100;
4442

4543
public QueueLevelConsumerOrderInfoLockManager(BrokerController brokerController) {
4644
this.brokerController = brokerController;
45+
long tickMs = brokerController.getBrokerConfig().getPopOrderLockTimerTickMs();
46+
int ticksPerWheel = brokerController.getBrokerConfig().getPopOrderLockTimerTicksPerWheel();
4747
this.timer = new HashedWheelTimer(
4848
new ThreadFactoryImpl("ConsumerOrderInfoLockManager_"),
49-
TIMER_TICK_MS, TimeUnit.MILLISECONDS);
49+
tickMs, TimeUnit.MILLISECONDS, ticksPerWheel);
5050
}
5151

5252
/**

common/src/main/java/org/apache/rocketmq/common/BrokerConfig.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -572,6 +572,10 @@ public class BrokerConfig extends BrokerIdentity {
572572

573573
private int liteLagLatencyTopK = 50;
574574

575+
// HashedWheelTimer config for pop order lock manager
576+
private long popOrderLockTimerTickMs = 100;
577+
private int popOrderLockTimerTicksPerWheel = 512;
578+
575579
public String getConfigBlackList() {
576580
return configBlackList;
577581
}
@@ -2489,6 +2493,22 @@ public void setLiteLagLatencyTopK(int liteLagLatencyTopK) {
24892493
this.liteLagLatencyTopK = liteLagLatencyTopK;
24902494
}
24912495

2496+
public long getPopOrderLockTimerTickMs() {
2497+
return popOrderLockTimerTickMs;
2498+
}
2499+
2500+
public void setPopOrderLockTimerTickMs(long popOrderLockTimerTickMs) {
2501+
this.popOrderLockTimerTickMs = popOrderLockTimerTickMs;
2502+
}
2503+
2504+
public int getPopOrderLockTimerTicksPerWheel() {
2505+
return popOrderLockTimerTicksPerWheel;
2506+
}
2507+
2508+
public void setPopOrderLockTimerTicksPerWheel(int popOrderLockTimerTicksPerWheel) {
2509+
this.popOrderLockTimerTicksPerWheel = popOrderLockTimerTicksPerWheel;
2510+
}
2511+
24922512
public boolean isUseMessageFilterForNotification() {
24932513
return useMessageFilterForNotification;
24942514
}

0 commit comments

Comments
 (0)