[RIP-2] Add ProxyAdminService proto definitions for online client query#111
Open
messere1 wants to merge 2 commits into
Open
[RIP-2] Add ProxyAdminService proto definitions for online client query#111messere1 wants to merge 2 commits into
messere1 wants to merge 2 commits into
Conversation
Extend the Admin service with two new RPCs to support online client query on the Proxy: - ListClients: list online client connections on the responding Proxy node with optional filtering (group, topic, client_id prefix, language, role, connect time) and cursor-based pagination. Each Proxy returns only its local view; callers aggregate across nodes. - DescribeClient: get detailed information for a specific client by client_id, including negotiated Settings, active subscriptions, and recent heartbeat records. New messages: ClientFilter, ListClientsRequest, ClientInstance, ListClientsResponse, DescribeClientRequest, HeartbeatRecord, ClientDetail (with nested AuthStatus). Reuses existing types from definition.proto: Language, ClientType, Status, Settings, SubscriptionEntry. Design follows Option A from the RIP-2 DISCUSS email (extend existing Admin service rather than introducing a separate ProxyAdminService). See: apache/rocketmq#10601
|
这是来自QQ邮箱的自动回复邮件。
您好,请您放心您的邮件我已经收到。我将在看过邮件后,尽快给您回复。
|
There was a problem hiding this comment.
Pull request overview
This PR extends the RocketMQ v2 Admin gRPC surface with new proto definitions to support Proxy-side online client introspection (listing connected clients and describing a specific client in detail), as proposed in RIP-2.
Changes:
- Added
ListClientsRPC withClientFilterand cursor-based pagination (next_token). - Added client-visibility messages (
ClientInstance,ClientDetail,HeartbeatRecord) to represent connected client runtime state. - Extended
Adminservice withListClientsandDescribeClientRPC declarations.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Based on community feedback on RIP issue #10601 (D1), switch from extending the existing Admin service to a dedicated ProxyAdminService for Proxy admin operations. Changes: - Restore Admin service to its original scope (ChangeLogLevel only) - Add new ProxyAdminService with ListClients + DescribeClient RPCs - Add proxy_group_id field to ListClientsResponse (D3 feedback from github-manager-bot evaluation: allows consumers to correlate local views across proxies without external configuration)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
As part of RIP-2: Proxy Admin API, the Proxy needs admin RPCs to query online client connections. Currently there is no gRPC API to list connected clients or inspect their details — operators must rely on CLI tools or logs.
This PR adds the proto definitions for two new admin RPCs:
ListClients— List online client connections on the responding Proxy node with optional filtering and cursor-based pagination.DescribeClient— Get detailed information for a specific client byclient_id, including negotiated Settings, active subscriptions, and recent heartbeat records.Design
Follows Option B from the DISCUSS email: introduce a dedicated
ProxyAdminServicerather than extending the existingAdminservice.Key decisions (updated per community feedback)
ProxyAdminService(Option B)Adminserviceproxy_group_id+proxy_endpoint+epochnext_token)New messages
ClientInstance.ProtocolenumRocketMQ Proxy accepts both gRPC (v5 SDK) and Remoting (v4 SDK) client connections. The
protocolfield allows operators to distinguish them.Service layout
Example Usage
Compatibility
Adminservice andChangeLogLevelRPC are unchanged. All new types are additive.Changes in this PR
83f3ce0): Initial proto draft with Option A (extend Admin)d8f7286): Switch to Option B — dedicatedProxyAdminService+ addproxy_group_idFollow-up
apache/rocketmq(Proxy module) — tracked separatelyrocketmq-dashboardintegration — consumeListClientsfor client management UIRelated