diff --git a/store/src/main/java/org/apache/rocketmq/store/config/MessageStoreConfig.java b/store/src/main/java/org/apache/rocketmq/store/config/MessageStoreConfig.java index 60f6a90381c..f79600ce3ab 100644 --- a/store/src/main/java/org/apache/rocketmq/store/config/MessageStoreConfig.java +++ b/store/src/main/java/org/apache/rocketmq/store/config/MessageStoreConfig.java @@ -74,6 +74,7 @@ public class MessageStoreConfig { private int timerFlushIntervalMs = 1000; private int timerGetMessageThreadNum = 3; private int timerPutMessageThreadNum = 3; + private int timerMessageBufferSize = 512; private boolean timerEnableDisruptor = false; @@ -1671,6 +1672,14 @@ public void setTimerPutMessageThreadNum(int timerPutMessageThreadNum) { this.timerPutMessageThreadNum = timerPutMessageThreadNum; } + public int getTimerMessageBufferSize() { + return timerMessageBufferSize; + } + + public void setTimerMessageBufferSize(int timerMessageBufferSize) { + this.timerMessageBufferSize = timerMessageBufferSize; + } + public boolean isTimerEnableDisruptor() { return timerEnableDisruptor; } diff --git a/store/src/main/java/org/apache/rocketmq/store/timer/TimerMessageStore.java b/store/src/main/java/org/apache/rocketmq/store/timer/TimerMessageStore.java index d6af7b84e79..ed12f815808 100644 --- a/store/src/main/java/org/apache/rocketmq/store/timer/TimerMessageStore.java +++ b/store/src/main/java/org/apache/rocketmq/store/timer/TimerMessageStore.java @@ -198,7 +198,7 @@ public TimerMessageStore(final MessageStore messageStore, final MessageStoreConf bufferLocal = new ThreadLocal() { @Override protected ByteBuffer initialValue() { - return ByteBuffer.allocateDirect(storeConfig.getMaxMessageSize() + 100); + return ByteBuffer.allocateDirect(storeConfig.getMaxMessageSize() + storeConfig.getTimerMessageBufferSize()); } };