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]

Reply via email to