- Source: rocketmq-all-5.5.0-source-release.zip [PGP] [SHA512]
- Binary: rocketmq-all-5.5.0-bin-release.zip [PGP] [SHA512] :::
Below is a summary of the issues addressed in the 5.5.0 release of RocketMQ. For full documentation of the release, a guide to get started, please refer to Quick Start.
This version introduces Lite Mode, a lightweight subscription mechanism designed for AI scenarios, alongside enhancements across Broker, Proxy, and client components.
New Feature (Lite Mode)
Introduced a lightweight subscription mode (Lite Mode) that delivers more efficient messaging with reduced resource consumption. This mode provides complete lifecycle management, event dispatching, subscription registration, message processing, and metrics monitoring. With the newly added Lite message processor, long-polling service, control handler, and corresponding protocol support, it establishes an efficient lightweight message subscription mechanism tailored for AI scenarios.
- [RIP-83] Lite Topic: A New Message Model by @f1amingo in https://github.com/apache/rocketmq/pull/9800
What's Changed
- [ISSUE #9780] Skip unnecessary RPC when topic has no message queues by @yx9o in https://github.com/apache/rocketmq/pull/9781
- [ISSUE #9964] Rename intConfig method to initConfig by @yx9o in https://github.com/apache/rocketmq/pull/9965
- [ISSUE #9962] Fix the failure of fastjson2 parsing metricsExporterType in proxy config by @yuz10 in https://github.com/apache/rocketmq/pull/9963
- [ISSUE #9976] Update copyright year in NOTICE file to 2026 by @mxsm in https://github.com/apache/rocketmq/pull/9977
- [ISSUE #9980] Skip invalid records when the group is absent in Pop by @lizhimins in https://github.com/apache/rocketmq/pull/9981
- [ISSUE #9970] Refactor the MessageQueueSelector to support more flexible queue selection strategy by @qianye1001 in https://github.com/apache/rocketmq/pull/9971
- [ISSUE #9994] Improve switchTimerEngine command with OptionGroup validation by @majialoong in https://github.com/apache/rocketmq/pull/9995
- [ISSUE #9923] Transactional messages should not send custom delayed messages by @yx9o in https://github.com/apache/rocketmq/pull/9924
- [ISSUE #9953] Fix: there's no need to decompress message body in server side by @humkum in https://github.com/apache/rocketmq/pull/9954
- [ISSUE #9912] Reduce excessive requests for consumer offset timestamps in tiered storage by @lizhimins in https://github.com/apache/rocketmq/pull/9991
- [ISSUE #9992] Fix remoting server netty server codec thread reuse problem by @ymwneu in https://github.com/apache/rocketmq/pull/9993
- [ISSUE #9978] Remove static from loadJsonConfig and unify exception handling by @yx9o in https://github.com/apache/rocketmq/pull/9979
- [ISSUE #9900] Support sending heartbeats to the broker concurrently by @Kris20030907 in https://github.com/apache/rocketmq/pull/9901
- [ISSUE #9975] Bump broker rocksdb from 1.0.2 to 1.0.6 by @lizhimins in https://github.com/apache/rocketmq/pull/10002
- [ISSUE #10005] Fix switch-case logic in updateConsumerOffsetAsync by @yx9o in https://github.com/apache/rocketmq/pull/10006
- [ISSUE #10015] Optimize writeWithoutMmap: add page alignment to avoid read-modify-write by @guyinyou in https://github.com/apache/rocketmq/pull/10016
- [ISSUE #9980] Skip invalid POP records when consumer group does not exist by @Gautam-aman in https://github.com/apache/rocketmq/pull/9982
- [ISSUE #10023] Remove duplicate shutdown and rejection handler calls for routeThreadPoolExecutor by @Kris20030907 in https://github.com/apache/rocketmq/pull/10024
- [ISSUE #10017] Validate commitlog offset in recoverAbnormally to prevent processing invalid data by @guyinyou in https://github.com/apache/rocketmq/pull/10018
- [ISSUE #10031] Add PreprocessHandler interface in AllocateMappedFileService by @guyinyou in https://github.com/apache/rocketmq/pull/10032
- [ISSUE #10019] Revert "[ISSUE #8127] Optimize the metric calculation logic of the time wheel" by @RongtongJin in https://github.com/apache/rocketmq/pull/10020
- [ISSUE #10035] Fix: avoid extra padding when message end position is already page-aligned by @guyinyou in https://github.com/apache/rocketmq/pull/10036
- [ISSUE #10040] Ignore flattened-pom.xml files generated by maven by @yx9o in https://github.com/apache/rocketmq/pull/10041
- [ISSUE #10038] Fix checkCommitLogOffsetOnRecover to skip validation for BLANK_MAGIC_CODE by @guyinyou in https://github.com/apache/rocketmq/pull/10039
- [ISSUE #9852] Print full message content when CRC not found in properties by @guyinyou in https://github.com/apache/rocketmq/pull/9853
- [ISSUE #9988] Remove mismatched response header in getConsumerConnectionList by @yx9o in https://github.com/apache/rocketmq/pull/9989
- [ISSUE #10043] Make TimerMessageReputService thread pool configurable and shutdown gracefully by @Kris20030907 in https://github.com/apache/rocketmq/pull/10044
- [ISSUE #10021] Optimize consumer type check with EnumSet by @yx9o in https://github.com/apache/rocketmq/pull/10022
- [ISSUE #10054] Correct the output format for ConsumerRecords by @yx9o in https://github.com/apache/rocketmq/pull/10055
- [ISSUE #10050] Support ChangeInvisibleTime without incrementing message reconsume times by @ltamber in https://github.com/apache/rocketmq/pull/10051
- [ISSUE #10034] Optimizing cq iterator and calculating lag by @lizhimins in https://github.com/apache/rocketmq/pull/10056
- [ISSUE #9999] Mark custom delay time messages with delay type by @yx9o in https://github.com/apache/rocketmq/pull/10000
- [ISSUE #10046] Fix lock leak risk in sendHeartbeatToBroker by @yx9o in https://github.com/apache/rocketmq/pull/10047
- [ISSUE #10063] Notification request adds subscription expression to support on-demand wake-up by @qianye1001 in https://github.com/apache/rocketmq/pull/10064
- [ISSUE #10068] Remove duplicate registration in DefaultMessagingProcessor.init by @yx9o in https://github.com/apache/rocketmq/pull/10069
- [ISSUE #10071] Fix PopLiteLongPollingService#cleanUnusedResource by @f1amingo in https://github.com/apache/rocketmq/pull/10072
- [ISSUE #10073] Fix StoreCheckpoint logicsMsgTimestamp to reflect flushed consume queues storetime by @guyinyou in https://github.com/apache/rocketmq/pull/10074
- [ISSUE #10079] FlushConsumeQueueService: always flush store checkpoint after CQ flush by @guyinyou in https://github.com/apache/rocketmq/pull/10080
- [ISSUE #10082] Missing PROPERTY_TIMER_DELAY_MS property check in delay message type validation by @dingshuangxi888 in https://github.com/apache/rocketmq/pull/10084
- [ISSUE #10095] Upgraded Commons Lang3 to remediate CVEs by @shub-est in https://github.com/apache/rocketmq/pull/10096
- [ISSUE #10086] Fix timer engine switch to persist correct config key by @Liu-ZhenYu in https://github.com/apache/rocketmq/pull/10085
- [ISSUE #10093] Enhance delayed message type validation in batch send by @yx9o in https://github.com/apache/rocketmq/pull/10094
- [ISSUE #10105] Fix ClassCastException in getLocks() method by @yx9o in https://github.com/apache/rocketmq/pull/10106
- [ISSUE #10108] Broker startup fail in recover by @yuz10 in https://github.com/apache/rocketmq/pull/10109
- [ISSUE #10110] Plain request process success and response fail when tlsMode=enforcing by @yuz10 in https://github.com/apache/rocketmq/pull/10111
- [ISSUE #10107] Fix fastjson2 integer overflow when parsing AtomicLong by @yx9o in https://github.com/apache/rocketmq/pull/10112
- [ISSUE #10061] Optimize the issue/pull request template of RocketMQ by @mxsm in https://github.com/apache/rocketmq/pull/10062
- [ISSUE #10011] Optimize accelerated recovery process and refactor code by @RongtongJin in https://github.com/apache/rocketmq/pull/10012
- [ISSUE #10159] Fix unstable tests in DefaultMQLitePullConsumerWithTraceTest by @yx9o in https://github.com/apache/rocketmq/pull/10160
- [ISSUE #10077] Support password-encrypted private keys for Proxy TLS by @majialoong in https://github.com/apache/rocketmq/pull/10078
- [ISSUE #10009] Add null-check log and convert internal-only public classes to inner classes by @sinberCS in https://github.com/apache/rocketmq/pull/10028
- [ISSUE #10157] Fix tiered metadata leak after topic delete by @woaishixiaoxiao in https://github.com/apache/rocketmq/pull/10158
- [ISSUE #10154] Rename BrokerConsumeStatsSubCommad to BrokerConsumeStatsSubCommand by @yx9o in https://github.com/apache/rocketmq/pull/10155
- [ISSUE #10161] Reduce bytes copy by @ChineseTony in https://github.com/apache/rocketmq/pull/10162
- [ISSUE #10168] Fix GetAllTopicConfigResponseHeader compatibility issue by @gaoyf in https://github.com/apache/rocketmq/pull/10169
- [ISSUE #10103] Improve batch polling efficiency in pollIndexRecord method by @yx9o in https://github.com/apache/rocketmq/pull/10104
- [ISSUE #10171] Support custom JAVA_HOME on Linux in runbroker.sh and runserver.sh by @majialoong in https://github.com/apache/rocketmq/pull/10172
- [ISSUE #10181] Some minor fixes in PopConsumerService by @lizhimins in https://github.com/apache/rocketmq/pull/10182
- [ISSUE #10195] Ensure RocksDB compatibility in slave-master synchronization by @gaoyf in https://github.com/apache/rocketmq/pull/10196
- [ISSUE #10199] Fix stale write timestamp leads to duplicate transaction commit by @lizhimins in https://github.com/apache/rocketmq/pull/10200
- [ISSUE #10201] Optimize queryOffset method overloads in IndexService by @yx9o in https://github.com/apache/rocketmq/pull/10202
- [ISSUE #10221] Add RejectedExecutionHandler support for ThreadPoolMonitor by @ltamber in https://github.com/apache/rocketmq/pull/10222
- [ISSUE #10229] Fix server-side reset offset does not take effect for FIFO (orderly) pop consumers by @qianye1001 in https://github.com/apache/rocketmq/pull/10230
- [ISSUE #10223] Not query the index of system topics in tiered storage by @lizhimins in https://github.com/apache/rocketmq/pull/10224
- [ISSUE #10003] Add gRPC maxConcurrentCallsPerConnection Configuration to Proxy by @qianye1001 in https://github.com/apache/rocketmq/pull/10004
- [ISSUE #10165] Prevent RocksDB metrics from being overwritten after timer engine switch by @3424672656 in https://github.com/apache/rocketmq/pull/10166
- [ISSUE #10076] Make orderly resetOffset wait on consume lock while preserving timeout semantics by @LystranG in https://github.com/apache/rocketmq/pull/10175
- [ISSUE #10191] Fix wrong option value for namesrvAddr parsing in timer benchmark examples by @majialoong in https://github.com/apache/rocketmq/pull/10192
- [ISSUE #10189] Remove unused fetchRemoteConfigExecutorService in MQClientInstance by @Kris20030907 in https://github.com/apache/rocketmq/pull/10190
- [ISSUE #10183] Fix incorrect brokerName when constructing ProcessQueueTable with static topic by @Kris20030907 in https://github.com/apache/rocketmq/pull/10184
- [ISSUE #10183] Fix exception when trying to release lock that was not successfully acquired by @Kris20030907 in https://github.com/apache/rocketmq/pull/10186
- [ISSUE #10203] Support wildcard subscription and consumer suspend for LiteTopic by @f1amingo in https://github.com/apache/rocketmq/pull/10204
- [ISSUE #10173] Support LMQ in CombineConsumeQueueStore without migration to RocksDB CQ by @imzs in https://github.com/apache/rocketmq/pull/10174
- [ISSUE #10240] Add BatchSplittingMetricExporter to prevent OTLP gRPC export failures by @Houlong66 in https://github.com/apache/rocketmq/pull/10239
- [ISSUE #10173] Improve PopLite: rename RocksDB CQ path and schedule autoClean by @imzs in https://github.com/apache/rocketmq/pull/10242
- [ISSUE #9777] Use data version from master while sync slave and fix delete consume queue by @absolute8511 in https://github.com/apache/rocketmq/pull/9778
- [ISSUE #10181] Remove lock when resetting offset in PopConsumerService by @lizhimins in https://github.com/apache/rocketmq/pull/10250
- fix(store): close all consume queue file handles on ConsumeQueueStore shutdown by @RongtongJin in https://github.com/apache/rocketmq/pull/10060
- forbid windows sync directory by @gaoyf in https://github.com/apache/rocketmq/pull/10057
- Restore the lost PR 3460 by @gaoyf in https://github.com/apache/rocketmq/pull/10067
- Remove some workflows by @RongtongJin in https://github.com/apache/rocketmq/pull/10220
Dependency Upgrades
- Bump commons-validator from 1.7 to 1.10.0 by @Zjianru in https://github.com/apache/rocketmq/pull/10081
- Upgraded LZ4 and migrated to newer group id by @shub-est in https://github.com/apache/rocketmq/pull/10092
- Upgraded Bouncy Castle to remediate CVEs by @shub-est in https://github.com/apache/rocketmq/pull/10102
- Upgraded Netty to 4.1.130.Final to remediate CVEs by @shub-est in https://github.com/apache/rocketmq/pull/10090
New Contributors
- @Gautam-aman made their first contribution in https://github.com/apache/rocketmq/pull/9982
- @shub-est made their first contribution in https://github.com/apache/rocketmq/pull/10096
- @Liu-ZhenYu made their first contribution in https://github.com/apache/rocketmq/pull/10085
- @Zjianru made their first contribution in https://github.com/apache/rocketmq/pull/10081
- @LystranG made their first contribution in https://github.com/apache/rocketmq/pull/10175
- @Houlong66 made their first contribution in https://github.com/apache/rocketmq/pull/10239
Full Changelog: https://github.com/apache/rocketmq/compare/rocketmq-all-5.4.0...rocketmq-all-5.5.0