elephone-184 opened a new pull request, #5050: URL: https://github.com/apache/rocketmq-dashboard/pull/5050
## What is the purpose of the change In RocketMQ architecture, NameServer nodes operate as shared-nothing distributed coordination registries. Each broker independently registers heartbeat routes with every configured NameServer. During localized network partitions, slow broker registrations, or GC pauses, individual NameServers can temporarily serve divergent `TopicRouteData` (differing broker cluster memberships, queue numbers, or read/write permissions). Clients pulling routes from different NameServers then experience inconsistent routing, producer send rejections, or queue allocation flips. This PR introduces an automated `MultiNamesrvRouteConsistencyProbe`: 1. `NamesrvRouteConsistencyReportVO`, `NamesrvNodeRouteVO`, & `RouteDriftDetailVO`: Structured domain models reporting multi-node reachability, route signature hashes, and pinpointed drift dimensions (`BROKER_DATA_MEMBERSHIP`, `QUEUE_COUNT_MISMATCH`). 2. `MultiNamesrvRouteConsistencyProbe`: Queries `TopicRouteData` concurrently across all registered NameServer addresses in a cluster. It generates comparative signature hashes and identifies discrepancies in broker registration membership and queue allocation. 3. Controller & Service wiring: Integrates through `NameServerConfigDiffService.probeRouteConsistency` and exposes `/api/nameservers/route-consistency-probe` in `NameServerController`. 4. Comprehensive unit test suite covering single NameServer setups, fully consistent clusters, broker membership drift, queue count mismatches, and controller/service integration. ## Brief changelog - Add `NamesrvRouteConsistencyReportVO.java` domain model. - Add `MultiNamesrvRouteConsistencyProbe.java` route consistency evaluation engine. - Add `probeRouteConsistency` in `NameServerConfigDiffService`. - Expose `/api/nameservers/route-consistency-probe` endpoint in `NameServerController`. - Add `MultiNamesrvRouteConsistencyProbeTest.java` and expand `NameServerConfigDiffServiceTest.java` and `NameServerControllerTest.java`. ## Verifying this change - `MultiNamesrvRouteConsistencyProbeTest`: verifies route signature hashing, broker membership comparison, queue count comparison, and single-node fallback. - `NameServerConfigDiffServiceTest`: verifies cluster address collection and probe delegation. - `NameServerControllerTest`: verifies `/api/nameservers/route-consistency-probe` REST endpoint serialization. -- 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]
