Jayho-h commented on issue #10599:
URL: https://github.com/apache/rocketmq/issues/10599#issuecomment-5104892610
I would like to contribute the RIP-2 M1 online-client query implementation
and
would appreciate confirmation of the protocol/integration direction before
opening code PRs.
The proposed implementation extends the shared `Admin` service introduced by
apache/rocketmq-apis#113 instead of adding a second repository-local proto
service. The M1 surface contains the four issue-required operations:
- bounded/filter-pushed `ListClients`;
- generation-consistent `DescribeClient`;
- backward-compatible bounded `ListConsumerConnection` for group queries; and
- bounded `ListClientsByTopic`.
The serving model is explicitly one Proxy's local weakly consistent view.
Sessions have generation-qualified identity, ordered group/topic/language
indexes, authenticated filter-bound cursors, a page-size cap of 100, and a
4 MiB response cap. `DescribeClient` returns bounded reported/effective
Settings, heartbeat/authentication/Pop diagnostics, redacted properties by
default, and verified TLS metadata.
The main-repository implementation is limited to `common`, `auth`, and
`proxy`;
it contains no Broker or NameServer core change. It uses a dedicated Admin
port, executor, lifecycle, ACL resources (`proxy.admin.client` and the
separately audited `proxy.admin.client.properties`), OpenTelemetry metrics,
and
bilingual documentation.
To keep reviews atomic, I propose the following dependency-ordered units,
keeping each publication diff at 5–10 files except where the complete atomic
change is smaller:
1. Telemetry callback serialization and generation-aware session ownership;
2. bounded indexed read model and protocol contract alignment;
3. Proxy Admin ACL resources and isolated server bootstrap;
4. the four query handlers and bounded diagnostics;
5. TLS/metrics, E2E, documentation, and benchmark evidence.
Local pre-publication evidence currently includes:
- JDK 8 clean focused release gate: 277/277 tests;
- JDK 17 clean package, Checkstyle 0, SpotBugs 0;
- changed-core JaCoCo line coverage: 85.58%;
- one-million-session largest measured P99: 2.577 ms;
- recursive descriptor compatibility with exact #113 head
`3775da636200d3b7feab82b796548d6eb931206d`; and
- no Broker/NameServer diff.
I am rebasing the local stack onto the current `develop` head and will not
open implementation PRs until the community confirms that extending #113 and
the sequencing above are acceptable. If a smaller first slice is preferred,
please indicate which unit should be submitted first.
--
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]