Files that are both large and changed often are where bugs tend to cluster and where refactoring pays off first. Each file in the current tree is placed by its size and by the number of commits that changed it; its hotspot score is changes × √lines. Files without counted lines, such as binary files, are left out.
Each dot is a file; a bigger dot is a higher score. The dashed lines mark the median file size and the median number of changes, so the large files that change often are in the top right. Both axes are logarithmic. Showing the 2,000 highest-scoring of 2,691 files.
The files ranked by hotspot score: the larger a file is and the more often it changes, the higher it ranks. Authors is how many people have changed the file, bots aside, as on the Code Ownership page: a hotspot only one person has changed is also a bus-factor risk.
| File | Lines | Changes | Authors | Score | |
|---|---|---|---|---|---|
| pom.xml | 1,183 | 817 | 85 | 28,100.5 | |
| store/src/main/java/org/apache/rocketmq/store/DefaultMessageStore.java | 3,310 | 210 | 77 | 12,081.8 | |
| broker/src/main/java/org/apache/rocketmq/broker/BrokerController.java | 2,826 | 203 | 64 | 10,791.5 | |
| broker/src/main/java/org/apache/rocketmq/broker/processor/AdminBrokerProcessor.java | 3,715 | 156 | 71 | 9,508.3 | |
| client/src/main/java/org/apache/rocketmq/client/impl/MQClientAPIImpl.java | 3,898 | 137 | 69 | 8,553.5 | |
| common/src/main/java/org/apache/rocketmq/common/BrokerConfig.java | 2,573 | 147 | 54 | 7,456.5 | |
| store/src/main/java/org/apache/rocketmq/store/CommitLog.java | 2,580 | 141 | 63 | 7,161.9 | |
| store/src/main/java/org/apache/rocketmq/store/config/MessageStoreConfig.java | 2,439 | 106 | 47 | 5,234.9 | |
| client/src/main/java/org/apache/rocketmq/client/impl/producer/DefaultMQProducerImpl.java | 1,895 | 114 | 68 | 4,962.6 | |
| tools/src/main/java/org/apache/rocketmq/tools/admin/DefaultMQAdminExtImpl.java | 2,108 | 93 | 47 | 4,269.9 |
| File | Lines | Changes | Authors | Score | |
|---|---|---|---|---|---|
| pom.xml | 1,183 | 817 | 85 | 28,100.5 | |
| store/src/main/java/org/apache/rocketmq/store/DefaultMessageStore.java | 3,310 | 210 | 77 | 12,081.8 | |
| broker/src/main/java/org/apache/rocketmq/broker/BrokerController.java | 2,826 | 203 | 64 | 10,791.5 | |
| broker/src/main/java/org/apache/rocketmq/broker/processor/AdminBrokerProcessor.java | 3,715 | 156 | 71 | 9,508.3 | |
| client/src/main/java/org/apache/rocketmq/client/impl/MQClientAPIImpl.java | 3,898 | 137 | 69 | 8,553.5 | |
| common/src/main/java/org/apache/rocketmq/common/BrokerConfig.java | 2,573 | 147 | 54 | 7,456.5 | |
| store/src/main/java/org/apache/rocketmq/store/CommitLog.java | 2,580 | 141 | 63 | 7,161.9 | |
| store/src/main/java/org/apache/rocketmq/store/config/MessageStoreConfig.java | 2,439 | 106 | 47 | 5,234.9 | |
| client/src/main/java/org/apache/rocketmq/client/impl/producer/DefaultMQProducerImpl.java | 1,895 | 114 | 68 | 4,962.6 | |
| tools/src/main/java/org/apache/rocketmq/tools/admin/DefaultMQAdminExtImpl.java | 2,108 | 93 | 47 | 4,269.9 | |
| client/src/main/java/org/apache/rocketmq/client/impl/factory/MQClientInstance.java | 1,588 | 100 | 53 | 3,985.0 | |
| remoting/src/main/java/org/apache/rocketmq/remoting/netty/NettyRemotingClient.java | 1,233 | 92 | 47 | 3,230.5 | |
| broker/src/main/java/org/apache/rocketmq/broker/out/BrokerOuterAPI.java | 1,633 | 79 | 32 | 3,192.4 | |
| proxy/src/main/java/org/apache/rocketmq/proxy/config/ProxyConfig.java | 1,689 | 77 | 24 | 3,164.5 | |
| client/src/main/java/org/apache/rocketmq/client/impl/consumer/DefaultMQPushConsumerImpl.java | 1,603 | 75 | 38 | 3,002.8 | |
| client/src/main/java/org/apache/rocketmq/client/producer/DefaultMQProducer.java | 1,491 | 77 | 47 | 2,973.2 | |
| README.md | 261 | 171 | 47 | 2,762.6 | |
| broker/src/main/java/org/apache/rocketmq/broker/processor/PopMessageProcessor.java | 1,126 | 82 | 31 | 2,751.6 | |
| store/src/main/java/org/apache/rocketmq/store/ConsumeQueue.java | 1,304 | 66 | 31 | 2,383.3 | |
| store/src/main/java/org/apache/rocketmq/store/timer/TimerMessageStore.java | 2,123 | 49 | 23 | 2,257.7 | |
| client/src/main/java/org/apache/rocketmq/client/impl/consumer/DefaultLitePullConsumerImpl.java | 1,321 | 62 | 38 | 2,253.4 | |
| namesrv/src/main/java/org/apache/rocketmq/namesrv/routeinfo/RouteInfoManager.java | 1,278 | 62 | 33 | 2,216.4 | |
| common/src/main/java/org/apache/rocketmq/common/MixAll.java | 647 | 85 | 50 | 2,162.1 | |
| broker/src/main/java/org/apache/rocketmq/broker/processor/SendMessageProcessor.java | 735 | 79 | 38 | 2,141.8 | |
| tools/src/main/java/org/apache/rocketmq/tools/admin/DefaultMQAdminExt.java | 1,044 | 63 | 38 | 2,035.6 | |
| store/src/main/java/org/apache/rocketmq/store/dledger/DLedgerCommitLog.java | 1,138 | 58 | 28 | 1,956.6 | |
| remoting/src/main/java/org/apache/rocketmq/remoting/netty/NettyRemotingAbstract.java | 822 | 66 | 34 | 1,892.3 | |
| broker/src/main/java/org/apache/rocketmq/broker/controller/ReplicasManager.java | 886 | 63 | 14 | 1,875.2 | |
| remoting/src/main/java/org/apache/rocketmq/remoting/netty/NettyRemotingServer.java | 835 | 64 | 32 | 1,849.4 | |
| store/src/test/java/org/apache/rocketmq/store/DefaultMessageStoreTest.java | 1,213 | 53 | 30 | 1,845.9 | |
| broker/src/main/java/org/apache/rocketmq/broker/topic/TopicConfigManager.java | 803 | 65 | 39 | 1,841.9 | |
| client/src/main/java/org/apache/rocketmq/client/consumer/DefaultMQPushConsumer.java | 1,039 | 57 | 25 | 1,837.3 | |
| broker/src/test/java/org/apache/rocketmq/broker/processor/AdminBrokerProcessorTest.java | 2,184 | 37 | 28 | 1,729.1 | |
| client/src/test/java/org/apache/rocketmq/client/impl/MQClientAPIImplTest.java | 2,160 | 34 | 21 | 1,580.2 | |
| client/src/test/java/org/apache/rocketmq/client/producer/DefaultMQProducerTest.java | 1,016 | 49 | 30 | 1,561.9 | |
| broker/src/main/java/org/apache/rocketmq/broker/processor/PullMessageProcessor.java | 917 | 51 | 24 | 1,544.4 | |
| common/src/main/java/org/apache/rocketmq/common/MQVersion.java | 947 | 50 | 18 | 1,538.7 | |
| tools/src/main/java/org/apache/rocketmq/tools/command/MQAdminStartup.java | 354 | 79 | 38 | 1,486.4 | |
| client/src/main/java/org/apache/rocketmq/client/impl/consumer/DefaultMQPullConsumerImpl.java | 882 | 49 | 32 | 1,455.2 | |
| store/src/main/java/org/apache/rocketmq/store/MessageStore.java | 1,020 | 45 | 23 | 1,437.2 | |
| broker/src/main/java/org/apache/rocketmq/broker/processor/PopReviveService.java | 729 | 52 | 24 | 1,404.0 | |
| common/src/main/java/org/apache/rocketmq/common/UtilAll.java | 762 | 50 | 32 | 1,380.2 | |
| store/src/main/java/org/apache/rocketmq/store/MappedFileQueue.java | 963 | 41 | 22 | 1,272.3 | |
| test/src/test/java/org/apache/rocketmq/test/grpc/v2/GrpcBaseIT.java | 967 | 40 | 12 | 1,243.9 | |
| broker/src/main/java/org/apache/rocketmq/broker/processor/AbstractSendMessageProcessor.java | 592 | 50 | 25 | 1,216.6 | |
| tools/src/main/java/org/apache/rocketmq/tools/admin/MQAdminExt.java | 546 | 52 | 32 | 1,215.1 | |
| common/pom.xml | 116 | 110 | 29 | 1,184.7 | |
| store/src/main/java/org/apache/rocketmq/store/ha/autoswitch/AutoSwitchHAService.java | 584 | 49 | 13 | 1,184.1 | |
| broker/src/main/java/org/apache/rocketmq/broker/metrics/BrokerMetricsManager.java | 909 | 39 | 20 | 1,175.8 | |
| namesrv/src/main/java/org/apache/rocketmq/namesrv/processor/DefaultRequestProcessor.java | 680 | 45 | 29 | 1,173.5 | |
| broker/pom.xml | 107 | 113 | 32 | 1,168.9 | |
| test/pom.xml | 122 | 104 | 24 | 1,148.7 | |
| proxy/src/main/java/org/apache/rocketmq/proxy/grpc/v2/client/ClientActivity.java | 630 | 44 | 12 | 1,104.4 | |
| controller/src/main/java/org/apache/rocketmq/controller/impl/manager/ReplicasInfoManager.java | 689 | 42 | 9 | 1,102.4 | |
| docs/cn/operation.md | 1,453 | 27 | 16 | 1,029.2 | |
| client/src/test/java/org/apache/rocketmq/client/consumer/DefaultLitePullConsumerTest.java | 907 | 33 | 20 | 993.8 | |
| distribution/pom.xml | 127 | 88 | 23 | 991.7 | |
| common/src/main/java/org/apache/rocketmq/common/message/MessageDecoder.java | 793 | 35 | 21 | 985.6 | |
| store/pom.xml | 79 | 110 | 26 | 977.7 | |
| remoting/src/main/java/org/apache/rocketmq/remoting/protocol/RemotingCommand.java | 653 | 38 | 23 | 971.0 | |
| client/src/main/java/org/apache/rocketmq/client/ClientConfig.java | 589 | 40 | 23 | 970.8 | |
| client/src/main/java/org/apache/rocketmq/client/impl/consumer/RebalanceImpl.java | 800 | 34 | 23 | 961.7 | |
| client/src/main/java/org/apache/rocketmq/client/impl/consumer/ConsumeMessageOrderlyService.java | 535 | 41 | 26 | 948.3 | |
| store/src/main/java/org/apache/rocketmq/store/ha/autoswitch/AutoSwitchHAConnection.java | 763 | 34 | 10 | 939.2 | |
| store/src/main/java/org/apache/rocketmq/store/queue/BatchConsumeQueue.java | 1,209 | 27 | 16 | 938.8 | |
| client/pom.xml | 70 | 112 | 30 | 937.1 | |
| client/src/main/java/org/apache/rocketmq/client/consumer/DefaultLitePullConsumer.java | 639 | 37 | 22 | 935.3 | |
| broker/src/main/java/org/apache/rocketmq/broker/processor/PopBufferMergeService.java | 949 | 30 | 18 | 924.2 | |
| broker/src/main/java/org/apache/rocketmq/broker/BrokerStartup.java | 355 | 49 | 23 | 923.2 | |
| example/pom.xml | 80 | 102 | 27 | 912.3 | |
| store/src/main/java/org/apache/rocketmq/store/logfile/DefaultMappedFile.java | 1,122 | 27 | 12 | 904.4 | |
| proxy/src/main/java/org/apache/rocketmq/proxy/processor/DefaultMessagingProcessor.java | 407 | 44 | 17 | 887.7 | |
| controller/src/main/java/org/apache/rocketmq/controller/impl/DLedgerController.java | 600 | 36 | 13 | 881.8 | |
| store/src/main/java/org/apache/rocketmq/store/stats/BrokerStatsManager.java | 827 | 30 | 17 | 862.7 | |
| client/src/main/java/org/apache/rocketmq/client/impl/MQAdminImpl.java | 507 | 38 | 25 | 855.6 | |
| store/src/main/java/org/apache/rocketmq/store/queue/ConsumeQueueStore.java | 909 | 28 | 16 | 844.2 | |
| docs/cn/RocketMQ_Example.md | 1,010 | 26 | 21 | 826.3 | |
| broker/src/main/java/org/apache/rocketmq/broker/processor/AckMessageProcessor.java | 575 | 34 | 16 | 815.3 | |
| namesrv/pom.xml | 68 | 98 | 23 | 808.1 | |
| client/src/test/java/org/apache/rocketmq/client/consumer/DefaultMQPushConsumerTest.java | 419 | 39 | 21 | 798.3 | |
| proxy/src/main/java/org/apache/rocketmq/proxy/service/message/LocalMessageService.java | 583 | 33 | 16 | 796.8 | |
| broker/src/main/java/org/apache/rocketmq/broker/subscription/SubscriptionGroupManager.java | 453 | 37 | 21 | 787.5 | |
| remoting/pom.xml | 54 | 107 | 27 | 786.3 | |
| client/src/main/java/org/apache/rocketmq/client/trace/AsyncTraceDispatcher.java | 428 | 38 | 30 | 786.2 | |
| store/src/test/java/org/apache/rocketmq/store/ConsumeQueueTest.java | 778 | 28 | 22 | 781.0 | |
| tieredstore/src/main/java/org/apache/rocketmq/tieredstore/TieredMessageStore.java | 585 | 32 | 11 | 774.0 | |
| proxy/src/main/java/org/apache/rocketmq/proxy/ProxyStartup.java | 295 | 45 | 16 | 772.9 | |
| broker/src/main/java/org/apache/rocketmq/broker/offset/ConsumerOffsetManager.java | 486 | 35 | 18 | 771.6 | |
| tools/pom.xml | 60 | 99 | 26 | 766.9 | |
| broker/src/main/java/org/apache/rocketmq/broker/schedule/ScheduleMessageService.java | 858 | 26 | 20 | 761.6 | |
| client/src/main/java/org/apache/rocketmq/client/consumer/DefaultMQPullConsumer.java | 510 | 33 | 20 | 745.2 | |
| store/src/main/java/org/apache/rocketmq/store/ha/autoswitch/AutoSwitchHAClient.java | 606 | 30 | 10 | 738.5 | |
| broker/src/main/java/org/apache/rocketmq/broker/transaction/queue/TransactionalMessageServiceImpl.java | 758 | 26 | 18 | 715.8 | |
| proxy/src/main/java/org/apache/rocketmq/proxy/processor/ConsumerProcessor.java | 594 | 29 | 11 | 706.8 | |
| example/src/main/java/org/apache/rocketmq/example/benchmark/Producer.java | 452 | 33 | 17 | 701.6 | |
| client/src/main/java/org/apache/rocketmq/client/impl/consumer/PullAPIWrapper.java | 400 | 35 | 23 | 700.0 | |
| srvutil/pom.xml | 56 | 93 | 20 | 695.9 | |
| broker/src/main/java/org/apache/rocketmq/broker/client/ConsumerManager.java | 410 | 34 | 15 | 688.4 | |
| test/src/test/java/org/apache/rocketmq/test/base/IntegrationTestBase.java | 312 | 38 | 18 | 671.2 | |
| broker/src/main/java/org/apache/rocketmq/broker/processor/EndTransactionProcessor.java | 380 | 34 | 22 | 662.8 |
How Apache RocketMQ compares with other open source projects from China →
How Apache RocketMQ ranks among open source projects from China by AI-assisted commits →
Generate this report for your own repository with gitstats-action · All Gallery reports
Publishes the report to GitHub Pages on every push to main: turn on Pages for the gh-pages branch.
# .github/workflows/gitstats.yml
name: GitStats Report
on:
push:
branches: [main]
permissions:
contents: write
jobs:
gitstats:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- uses: shenxianpeng/gitstats-action@v1
with:
deploy-to-pages: true