|
19 | 19 | import com.alibaba.fastjson2.JSON; |
20 | 20 | import com.google.common.annotations.VisibleForTesting; |
21 | 21 | import com.google.common.base.Stopwatch; |
| 22 | +import java.nio.ByteBuffer; |
| 23 | +import java.nio.file.Paths; |
| 24 | +import java.util.ArrayList; |
| 25 | +import java.util.Collections; |
| 26 | +import java.util.HashMap; |
| 27 | +import java.util.List; |
| 28 | +import java.util.Objects; |
| 29 | +import java.util.Queue; |
| 30 | +import java.util.concurrent.CompletableFuture; |
| 31 | +import java.util.concurrent.CompletionException; |
| 32 | +import java.util.concurrent.ConcurrentHashMap; |
| 33 | +import java.util.concurrent.ConcurrentMap; |
| 34 | +import java.util.concurrent.LinkedBlockingQueue; |
| 35 | +import java.util.concurrent.Semaphore; |
| 36 | +import java.util.concurrent.TimeUnit; |
| 37 | +import java.util.concurrent.atomic.AtomicBoolean; |
| 38 | +import java.util.concurrent.atomic.AtomicLong; |
22 | 39 | import org.apache.commons.lang3.StringUtils; |
23 | 40 | import org.apache.commons.lang3.tuple.Triple; |
24 | 41 | import org.apache.rocketmq.broker.BrokerController; |
|
52 | 69 | import org.slf4j.Logger; |
53 | 70 | import org.slf4j.LoggerFactory; |
54 | 71 |
|
55 | | -import java.nio.ByteBuffer; |
56 | | -import java.nio.file.Paths; |
57 | | -import java.util.ArrayList; |
58 | | -import java.util.Collections; |
59 | | -import java.util.HashMap; |
60 | | -import java.util.List; |
61 | | -import java.util.Objects; |
62 | | -import java.util.Queue; |
63 | | -import java.util.concurrent.CompletableFuture; |
64 | | -import java.util.concurrent.CompletionException; |
65 | | -import java.util.concurrent.ConcurrentHashMap; |
66 | | -import java.util.concurrent.ConcurrentMap; |
67 | | -import java.util.concurrent.LinkedBlockingQueue; |
68 | | -import java.util.concurrent.Semaphore; |
69 | | -import java.util.concurrent.TimeUnit; |
70 | | -import java.util.concurrent.atomic.AtomicBoolean; |
71 | | -import java.util.concurrent.atomic.AtomicLong; |
72 | | - |
73 | 72 | public class PopConsumerService extends ServiceThread { |
74 | 73 |
|
75 | 74 | private static final Logger log = LoggerFactory.getLogger(LoggerName.ROCKETMQ_POP_LOGGER_NAME); |
@@ -287,6 +286,12 @@ public void setFifoBlocked(PopConsumerContext context, |
287 | 286 | } |
288 | 287 |
|
289 | 288 | public boolean isFifoBlocked(PopConsumerContext context, String groupId, String topicId, int queueId) { |
| 289 | + // If server-side reset offset is enabled, and there is a reset offset, |
| 290 | + // then return false to make sure that the reset offset takes effect. |
| 291 | + if (brokerController.getBrokerConfig().isUseServerSideResetOffset() && |
| 292 | + this.brokerController.getConsumerOffsetManager().hasOffsetReset(topicId, groupId, queueId)) { |
| 293 | + return false; |
| 294 | + } |
290 | 295 | return brokerController.getConsumerOrderInfoManager().checkBlock( |
291 | 296 | context.getAttemptId(), topicId, groupId, queueId, context.getInvisibleTime()); |
292 | 297 | } |
|
0 commit comments