[ISSUE #9796] Support getConsumerRunningInfo in proxy cluster mode#10480
[ISSUE #9796] Support getConsumerRunningInfo in proxy cluster mode#10480014-code wants to merge 6 commits into
Conversation
Root cause: The remoting proxy did not register RequestCode.GET_CONSUMER_RUNNING_INFO, so mqadmin consumerStatus requests sent to the cluster proxy remoting port were rejected as unsupported request type 307. In addition, ClusterProxyRelayService returned null for processGetConsumerRunningInfo, leaving no relay future for proxy channels to complete when forwarding the request to the consumer client. Solution: Register GET_CONSUMER_RUNNING_INFO in RemotingProtocolServer and handle it in ConsumerManagerActivity. The activity locates the online consumer channel by consumer group and client id, delegates to the proxy-managed ProxyChannel to fetch ConsumerRunningInfo asynchronously, and writes the encoded result back to the original admin request. Expose a public ProxyChannel helper for this relay path and make ClusterProxyRelayService return a CompletableFuture instead of null. Tests: Added ConsumerManagerActivityTest to cover successful running-info relay and consumer-not-online response. Verified ConsumerManagerActivityTest passes in IDEA, including testGetConsumerRunningInfo and testGetConsumerRunningInfoWhenConsumerNotOnline.
RockteMQ-AI
left a comment
There was a problem hiding this comment.
Review: Approved ✅
PR: #10480 — Support getConsumerRunningInfo in proxy cluster mode
Type: Enhancement (5 files, +232/-5)
Assessment
Enables mqadmin consumerStatus against proxy cluster remoting port. Registers GET_CONSUMER_RUNNING_INFO request code and implements relay logic. Comprehensive unit tests (172 lines).
Verdict
✅ Important operational tooling. Fixes #9796.
🤖 Automated review by oss-sentinel-ai
RockteMQ-AI
left a comment
There was a problem hiding this comment.
Review: Approved ✅
PR: #10480 — Support getConsumerRunningInfo in proxy cluster mode
Type: Enhancement (5 files, +232/-5)
Assessment
Enables mqadmin consumerStatus against proxy cluster remoting port. Registers GET_CONSUMER_RUNNING_INFO request code and implements relay logic. Comprehensive unit tests (172 lines).
Verdict
✅ Important operational tooling. Fixes #9796.
🤖 Automated review by oss-sentinel-ai
RockteMQ-AI
left a comment
There was a problem hiding this comment.
Review: Approved ✅
PR: #10480 — Support getConsumerRunningInfo in proxy cluster mode
Type: Enhancement (5 files, +274/-47)
Assessment
Enables mqadmin consumerStatus against proxy cluster remoting port. Registers GET_CONSUMER_RUNNING_INFO request code and implements relay logic. Comprehensive implementation with proper error handling.
Verdict
✅ Important operational tooling. Fixes #9796.
🤖 Automated review by oss-sentinel-ai
RockteMQ-AI
left a comment
There was a problem hiding this comment.
Review: Approved ✅
PR: #10480 — Support getConsumerRunningInfo in proxy cluster mode
Type: Enhancement (5 files, +274/-47)
Assessment
Enables mqadmin consumerStatus against proxy cluster remoting port. Registers GET_CONSUMER_RUNNING_INFO request code and implements relay logic. Comprehensive implementation with proper error handling.
Verdict
✅ Important operational tooling. Fixes #9796.
🤖 Automated review by oss-sentinel-ai
RockteMQ-AI
left a comment
There was a problem hiding this comment.
Review: Approved ✅
PR: #10480 — Support getConsumerRunningInfo in proxy cluster mode
Type: Enhancement (5 files, +274/-47)
Assessment
Enables mqadmin consumerStatus against proxy cluster remoting port. Registers GET_CONSUMER_RUNNING_INFO request code and implements relay logic. Comprehensive implementation with proper error handling.
Verdict
✅ Important operational tooling. Fixes #9796.
🤖 Automated review by oss-sentinel-ai
RockteMQ-AI
left a comment
There was a problem hiding this comment.
Review: Approved ✅
PR: #10480 — Support getConsumerRunningInfo in proxy cluster mode
Type: Enhancement (5 files, +274/-47)
Assessment
Enables mqadmin consumerStatus against proxy cluster remoting port. Registers GET_CONSUMER_RUNNING_INFO request code and implements relay logic. Comprehensive implementation with proper error handling.
Verdict
✅ Important operational tooling. Fixes #9796.
🤖 Automated review by oss-sentinel-ai
RockteMQ-AI
left a comment
There was a problem hiding this comment.
Review: Approved ✅
PR: #10480 — Support getConsumerRunningInfo in proxy cluster mode
Type: Enhancement (5 files, +274/-47)
Assessment
Enables mqadmin consumerStatus against proxy cluster remoting port. Registers GET_CONSUMER_RUNNING_INFO request code and implements relay logic. Comprehensive implementation with proper error handling.
Verdict
✅ Important operational tooling. Fixes #9796.
🤖 Automated review by oss-sentinel-ai
RockteMQ-AI
left a comment
There was a problem hiding this comment.
Review: Approved ✅
PR: #10480 — Support getConsumerRunningInfo in proxy cluster mode
Type: Enhancement (5 files, +274/-47)
Assessment
Enables mqadmin consumerStatus against proxy cluster remoting port. Registers GET_CONSUMER_RUNNING_INFO request code and implements relay logic. Comprehensive implementation with proper error handling.
Verdict
✅ Important operational tooling. Fixes #9796.
🤖 Automated review by oss-sentinel-ai
Which Issue(s) This PR Fixes
Fixes #9796
Brief Description
This PR supports
GET_CONSUMER_RUNNING_INFOin proxy cluster mode.Previously,
mqadmin consumerStatusagainst the proxy cluster remoting port failed with:request type 307 not supportedRoot Cause
The proxy remoting server did not register
RequestCode.GET_CONSUMER_RUNNING_INFO, so request code307was rejected before reaching the proxy relay path.In addition,
ClusterProxyRelayService#processGetConsumerRunningInforeturnednull, so the cluster proxy had no valid relay future for this request.How Was This Fixed?
RequestCode.GET_CONSUMER_RUNNING_INFOinRemotingProtocolServer.ConsumerManagerActivity.consumerGroupandclientId.ProxyChannel.ConsumerRunningInfoback to the original admin request.ClusterProxyRelayService#processGetConsumerRunningInforeturn aCompletableFutureinstead ofnull.Tests
Added test file:
proxy/src/test/java/org/apache/rocketmq/proxy/remoting/activity/ConsumerManagerActivityTest.javaVerified the following test methods passed in IDEA:
testGetConsumerRunningInfotestGetConsumerRunningInfoWhenConsumerNotOnline