Files
rocketmq/container
rongtong 7d7502126c [ISSUE #9719] Fix Static Variable Conflicts in Multi-Broker Metrics Management (#9720)
* refactor: convert RemotingMetricsManager from static to instance-based

- Remove all static global instance related code
- Convert all static methods to instance methods
- Remove static wrapper methods for backward compatibility
- Add constructor and getter/setter methods for instance variables
- This ensures each broker instance manages its own metrics in multi-broker scenarios

* refactor: convert PopMetricsManager from static to instance-based

- Remove all static global instance related code
- Convert all static methods to instance methods
- Remove static wrapper methods for backward compatibility
- Add constructor and getter/setter methods for instance variables
- This ensures each broker instance manages its own Pop metrics in multi-broker scenarios

* refactor: implement instance-based metrics management for multi-broker scenarios

- Add RemotingMetricsManager instance variable to NettyRemotingAbstract
- Add setter/getter methods for RemotingMetricsManager in NettyRemotingAbstract
- Update writeResponse method to use instance-based metrics recording
- Add writeResponse method to RemotingServer interface
- Update BrokerController to set RemotingMetricsManager on NettyRemotingServer instances
- Update InnerBrokerController to set RemotingMetricsManager on SubRemotingServer instances
- Update all processor classes to use instance-based writeResponse calls
- Update RocksDBStoreMetricsManager integration in DefaultStoreMetricsManager
- Remove unused imports and clean up code

This ensures each broker instance manages its own metrics independently,
solving the static variable conflict issue in multi-broker processes.

* refactor: fix test failures caused by metrics manager refactoring

- Fix ChangeInvisibleTimeProcessorTest by using @Spy instead of @Mock for BrokerController
- Inject BrokerMetricsManager into BrokerController using reflection
- Remove unnecessary mock stubbings
- Update all processors to use new static writeResponse method
- Fix BrokerMetricsManager initialization issues in AckMessageProcessorTest and PopReviveServiceTest

These changes ensure all related tests pass after refactoring metrics managers from static variables to instance variables.

* fix: resolve checkstyle errors and ensure compilation success

- Remove duplicate import in PopMessageProcessor.java
- Clean up unused imports in ChangeInvisibleTimeProcessorTest.java
- Clean up unused imports in AckMessageProcessorTest.java
- Ensure all modules compile successfully without checkstyle violations

These changes complete the metrics manager refactoring from static variables to instance variables, resolving statistical information conflicts in multi-broker processes.

* Fix PopReviveServiceTest by adding proper PopMetricsManager mock

- Add PopMetricsManager mock to PopReviveServiceTest
- Fix NullPointerException in reviveRetry method
- Ensure rePutCK method is called correctly when retry fails
- Test now passes successfully with proper metrics manager setup

* Remove debug code from PopReviveService

- Remove debug logging statements from reviveMsgFromCk method
- Clean up test output for better readability

* fix

* fix
2025-09-22 09:53:52 +08:00
..