RockteMQ-AI commented on issue #11089: URL: https://github.com/apache/rocketmq/issues/11089#issuecomment-5598416206
**Issue Evaluation** Category: `type/enhancement` | Status: **Evaluated** **Feasibility:** Feasible **Scope:** `module/proxy` — Proxy internal system-message consumers, `DefaultMQPushConsumer` executor wiring **Compatibility:** No breaking changes; existing consumer behavior is preserved when no external executor is supplied. The proposal is well-scoped and addresses a real resource overhead: each system-message syncer currently allocates its own consumption thread pool. Sharing a single executor across Proxy-internal consumers reduces thread count and allows virtual-thread adoption on JDK 21+. Key design points look sound: - Externally owned `ExecutorService` on `DefaultMQPushConsumer` — clean separation of lifecycle - `ProxyConfig`-driven pool sizing (core=processors, max=2×processors, queue=10000, discard-oldest) — reasonable defaults - Independent consumer shutdown without closing shared executor — correct ownership semantics - Discard-oldest policy with broadcast failure-result processing — avoids silent offset pinning One consideration: the discard-oldest policy should be documented clearly, as silently dropping consumption tasks can retain cached messages and pin offsets if the broadcast failure path doesn't advance the offset. The issue body already acknowledges this — worth calling out in the Javadoc for the new executor-acceptance API. An automated fix proposal can be generated if the community confirms the approach. Reply `/approve` to proceed with PR generation. --- *Automated evaluation by @RockteMQ-AI* -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
