rocketmq
all-5.5.1Apache RocketMQ is a cloud native messaging and streaming platform, making it simple to build event-driven applications.
- Maintenance
- Active66 commits in 3 months · bus factor 3
- License
- Apache-2.0Permissive · OSI-approved
- Security
- No advisories publishedScorecard 6.8/10
- Supported versions
- No scheduleendoflife.date does not track this project
22.7k stars · 12k forks · 808 open issues · last release 2 months ago · data checked 55 minutes ago
Release history
All releases on GitHubThis maintenance release removes fastjson 1.x from the distribution (fastjson2 upgraded to 2.0.63 and DLedger bumped to 0.3.3.4), introduces a native RocksDB CqCompactionFilter with a cross-platform JNI shim, deprecates the legacy Broker DLedger mode, and delivers extensive stability and performance fixes across tiered storage, Lite Mode, Proxy, and the store layer.
Security & Dependencies
- [ISSUE #7703] Upgrade fastjson2 to 2.0.63 for security fixes by @lizhimins in https://github.com/apache/rocketmq/pull/10715
- [ISSUE #10651] bump DLedger to 0.3.3.4 (maintenance line) by @RongtongJin in https://github.com/apache/rocketmq/pull/10958
- [ISSUE #10641] Deprecate legacy Broker DLedger mode by @RongtongJin in https://github.com/apache/rocketmq/pull/10642
New Feature (Native RocksDB Compaction Filter)
Introduced a native ConsumeQueue compaction filter backed by a cross-platform JNI shim, replacing the previous pure-Java filter and the shaded rocketmq-rocksdb dependency with the official rocksdbjni artifact.
- [ISSUE #10334] Support native CqCompactionFilter with cross-platform JNI shim by @lizhimins in https://github.com/apache/rocketmq/pull/10335
- [ISSUE #10334] Make native CqCompactionFilter shim self-contained without rocksdbjni dependency by @lizhimins in https://github.com/apache/rocketmq/pull/10371
What's Changed
Tiered Storage
- [ISSUE #10462] Add memory backpressure to dispatch by @lizhimins in https://github.com/apache/rocketmq/pull/10470
- [ISSUE #10462] Fix concurrency bugs in tiered storage by @lizhimins in https://github.com/apache/rocketmq/pull/10471
- [ISSUE #10462] Optimize thread pool sizes for commit and fetch executors by @lizhimins in https://github.com/apache/rocketmq/pull/10472
- [ISSUE #10462] Improve error handling in tiered storage by @lizhimins in https://github.com/apache/rocketmq/pull/10473
- [ISSUE #10462] Standardize log format across tiered storage module by @lizhimins in https://github.com/apache/rocketmq/pull/10474
- [ISSUE #10462] Fix resource leaks and lifecycle issues in tiered storage by @lizhimins in https://github.com/apache/rocketmq/pull/10476
- [ISSUE #10572] Add dual TTL policy for tiered storage read-ahead cache by @Houlong66 in https://github.com/apache/rocketmq/pull/10573
Lite Mode
- [ISSUE #10253] Fix stale wildcardGroupMap entries caused by incorrect parsing during LiteTopic wildcard unregistration by @Kris20030907 in https://github.com/apache/rocketmq/pull/10254
- [ISSUE #10345] fix: preserve lite topic for auto-renew receipt handles by @Kris20030907 in https://github.com/apache/rocketmq/pull/10346
- [ISSUE #10384] Enforce Lite exclusive subscription eviction via server-side tombstones by @f1amingo in https://github.com/apache/rocketmq/pull/10386
- [ISSUE #10387] Support runtime hot-reload of maxClientEventCount in LiteEventDispatcher.ClientEventSet by @f1amingo in https://github.com/apache/rocketmq/pull/10388
- [ISSUE #10423] Optimize LiteConsumerLagCalculator.getLagCountTopK by deferring getStoreTimestamp to topK results only by @f1amingo in https://github.com/apache/rocketmq/pull/10424
- [ISSUE #10450] Selective double-write in CombineConsumeQueueStore by @imzs in https://github.com/apache/rocketmq/pull/10452
- [ISSUE #10453] Fix unexpected decrement of lmq counter by @imzs in https://github.com/apache/rocketmq/pull/10454
- [ISSUE #10549] Fix lite topic reset offset: memory leak, FIFO block bypass, and offset-0 reset failure by @f1amingo in https://github.com/apache/rocketmq/pull/10550
- [ISSUE #10560] Remove enableLiteEventMode config switch by @f1amingo in https://github.com/apache/rocketmq/pull/10561
- [ISSUE #10569] Support Lite Simple Consumer on server side by @f1amingo in https://github.com/apache/rocketmq/pull/10570
- [ISSUE #10615] Fix missing long-polling notification under CombineConsumeQueue selective double-write by @imzs in https://github.com/apache/rocketmq/pull/10616
- [ISSUE #10622] Resolve ConsumerOffsetManager dynamically in LiteEventDispatcher by @f1amingo in https://github.com/apache/rocketmq/pull/10623
- [ISSUE #10644] Add LMQ number gauge metric to Broker observability by @f1amingo in https://github.com/apache/rocketmq/pull/10645
- [ISSUE #10722] Lite Topic may not be cleaned up when message store timestamp is unavailable by @f1amingo in https://github.com/apache/rocketmq/pull/10723
Store & RocksDB
- [ISSUE #10344] Parameterize RocksDB CQ size amplification by @RongtongJin in https://github.com/apache/rocketmq/pull/10344
- [ISSUE #10270] Make Pop RocksDB BlockCache size configurable via MessageStoreConfig by @lizhimins in https://github.com/apache/rocketmq/pull/10271
- [ISSUE #10421] Fix Timer message rocksdb use wrong cache key by @echooymxq in https://github.com/apache/rocketmq/pull/10422
- [ISSUE #10417] Fix stale minOffset after consumeQueue truncation by @chenxu80 in https://github.com/apache/rocketmq/pull/10418
- [ISSUE #10521] Use madvise(MADV_RANDOM) to disable kernel read-ahead during correctMinOffset binary search by @lizhimins in https://github.com/apache/rocketmq/pull/10523
- [ISSUE #10639] Reuse a per-thread scratch buffer in CommitLog.checkMessageAndReturnSize by @wang-jiahua in https://github.com/apache/rocketmq/pull/10640
- [ISSUE #10813] Reduce temporary allocations in the LMQ append path by @ai-yang in https://github.com/apache/rocketmq/pull/10814
- [ISSUE #10819] Correct misleading CommitLog buffer comment by @fuyou001 in https://github.com/apache/rocketmq/pull/10820
- [ISSUE #10953] Clamp shifted message count range to queue bounds by @qianye1001 in https://github.com/apache/rocketmq/pull/10954
- [ISSUE #10959] Fix RocksDBConsumeQueue.iterateFrom should reject offset below min offset by @ymwneu in https://github.com/apache/rocketmq/pull/10960
- [ISSUE #9654] Optimize the bufferLocal size of the TimerMessageStore by @ymwneu in https://github.com/apache/rocketmq/pull/9655
- [ISSUE #10713] Optimize ConsumerFilterManager register CPU consumption by @ymwneu in https://github.com/apache/rocketmq/pull/10714
- [ISSUE #10515] Fix TransactionMetricsFlushService busy spin bug by @wang-jiahua in https://github.com/apache/rocketmq/pull/10517
- [ISSUE #10375] Fix race condition between deleteTopic and FlushConsumeQueueService by removing getLifeCycle indirection by @f1amingo in https://github.com/apache/rocketmq/pull/10376
- [ISSUE #10543] resolve data race in ServiceThread wakeup mechanism by @ShadowySpirits in https://github.com/apache/rocketmq/pull/10544
Broker & HA/Controller
- [ISSUE #10578] Fix master election maxOffset comparator overflow by @Aias00 in https://github.com/apache/rocketmq/pull/10578
- [ISSUE #10604] Fix TopicConfig DataVersion not persisted in split registration by @imzs in https://github.com/apache/rocketmq/pull/10605
- [ISSUE #10446] Support batch deletion of topics and subscription groups in broker by @wang-jiahua in https://github.com/apache/rocketmq/pull/10448
- [ISSUE #10435] Fix shared ClientChannelInfo preventing inactive channel expiry by @chuanxo in https://github.com/apache/rocketmq/pull/10437
- [ISSUE #10438] Fix buildTopicConfigSerializeWrapper exposing live topicConfigTable reference by @chuanxo in https://github.com/apache/rocketmq/pull/10439
- [ISSUE #10284] Fix consumerOffset deserialization error and add test by @ChineseTony in https://github.com/apache/rocketmq/pull/10287
- [ISSUE #10457] Fix RocketmqColdCtr logger level by @brucelwl in https://github.com/apache/rocketmq/pull/10447
- [ISSUE-10546] Add default implementation for rejectRequest() in NettyRequestProcessor by @f1amingo in https://github.com/apache/rocketmq/pull/10547
- fix(common): compare message queue ids safely by @yuluo-yx in https://github.com/apache/rocketmq/pull/10884
- fix(controller): compare partial broker identities safely by @yuluo-yx in https://github.com/apache/rocketmq/pull/10886