GitHub user goutamadwant added a comment to the discussion: lockBatchMQ的超时时间不可以设置么?
如果你指的是传统 Java 客户端顺序消费时的 **RPC 等待超时**,目前需要区分两层: - 底层 [`MQClientAPIImpl.lockBatchMQ`](https://github.com/apache/rocketmq/blob/ff8f6f74c560e391261ccd716707c6d20422e253/client/src/main/java/org/apache/rocketmq/client/impl/MQClientAPIImpl.java#L1709-L1717) 已经接收 `timeoutMillis`,并传给 `invokeSync`。 - 但 [`RebalanceImpl`](https://github.com/apache/rocketmq/blob/ff8f6f74c560e391261ccd716707c6d20422e253/client/src/main/java/org/apache/rocketmq/client/impl/consumer/RebalanceImpl.java) 的 `lock()` 和 `lockAll()` 调用时都写死了 `1000` 毫秒,所以普通 consumer 配置无法改变这两个调用的等待时间。 `rocketmq.client.rebalance.lockMaxLiveTime` / `lockInterval` 控制的是锁过期判断和续锁间隔,不是这次 RPC 的超时,不要用它们替代。 若要做成可配置项,改动重点在调用方:保留默认 1000ms,让 `lock()`、`lockAll()` 一致读取客户端配置,并测试配置值确实传到了 RPC 层。调大也会延长失败时 rebalance/续锁线程的等待,不能无限放宽。 以上按链接中的当前源码确认。你用的是哪个客户端版本,具体异常里的 `timeoutMillis` 是多少?这样可以确认是否就是这条调用路径。 GitHub link: https://github.com/apache/rocketmq/discussions/10952#discussioncomment-18325566 ---- This is an automatically sent email for [email protected]. To unsubscribe, please send an email to: [email protected]
