下载 5.3.2 版本
- 源码: rocketmq-all-5.3.2-source-release.zip [PGP] [SHA512]
- 二进制包: rocketmq-all-5.3.2-bin-release.zip [PGP] [SHA512] ::
以下是 RocketMQ 5.3.2 版本中解决的问题摘要。有关该版本的完整文档及入门指南,请参考 快速入门。
更新内容
此版本引入了基于 RocksDB 的 Pop 消费新实现(处于 alpha 阶段,详情请参阅 RIP-73)。它改进并提供了使用 RocksDB 存储消费队列索引的能力迁移计划,增加了取消定时消息的支持,增强了平滑上下线能力,并包含了大量与 HA、ACL、Metrics 和 Pop 消费相关的常规细节修复。
- [ISSUE #8784]PrintMessageSubCommand 支持 lmq,由 @RongtongJin 在 https://github.com/apache/rocketmq/pull/8785 提交
- [ISSUE #8790]添加将 Header 放入 Metadata 的工具类以避免重复数据,由 @dingshuangxi888 在 https://github.com/apache/rocketmq/pull/8792 提交
- [ISSUE #8802]更新 controller design.md,由 @luozongle01 在 https://github.com/apache/rocketmq/pull/8803 提交
- [ISSUE #8798]修复拼写错误,由 @luozongle01 在 https://github.com/apache/rocketmq/pull/8799 提交
- [ISSUE #8804]在移除组偏移量时清理偏移量,由 @leizhiyuan 在 https://github.com/apache/rocketmq/pull/8805 提交
- [ISSUE #8806]修复连接多个 RocketMQ 集群时的 autoBatch 错误,由 @luozongle01 在 https://github.com/apache/rocketmq/pull/8807 提交
- [ISSUE #8810]修复 e2e 和基准测试部署的独立执行问题,由 @chi3316 在 https://github.com/apache/rocketmq/pull/8812 提交
- [ISSUE #8816]修复日志拼写错误,由 @luozongle01 在 https://github.com/apache/rocketmq/pull/8817 提交
- [ISSUE #8764]在 cq rocksdb 存储中实现消费积压估算,由 @LetLetMe 在 https://github.com/apache/rocketmq/pull/8800 提交
- [ISSUE #8824]修复由逻辑错误引起的 IllegalStateException,由 @yx9o 在 https://github.com/apache/rocketmq/pull/8825 提交
- [ISSUE #8780]在 pop 消费中实现 ack/ck 消息的异步存储以提高性能,由 @RongtongJin 在 https://github.com/apache/rocketmq/pull/8727 提交
- [ISSUE #8835]当 ck 在缓冲区中时,不完整的 ack 会导致消息重复,由 @GenerousMan 在 https://github.com/apache/rocketmq/pull/8836 提交
- [ISSUE #8820]修复变量匹配注解 (@RocketMQResource),由 @mawen12 在 https://github.com/apache/rocketmq/pull/8821 提交
- [ISSUE #8830]修复原子刷盘的不当使用并清理代码,由 @lizhanhui 在 https://github.com/apache/rocketmq/pull/8830 提交
- [ISSUE #8829]修复使 ConsumeQueueStore 最底层压缩类型可配置的问题,由 @lizhanhui 在 https://github.com/apache/rocketmq/pull/8841 提交
- [ISSUE #8839]移除不必要的 synchronized 以提高并发性,由 @lizhanhui 在 https://github.com/apache/rocketmq/pull/8840 提交
- [ISSUE #8833]将 netty 版本更新至 4.1.114 以修复 CVE-2023-34462,由 @ShannonDing 在 https://github.com/apache/rocketmq/pull/8832 提交
- [ISSUE #8846]修复 registerProducer 不应受并发 scanNotAct… 影响的问题,由 @lizhanhui 在 https://github.com/apache/rocketmq/pull/8847 提交
- [ISSUE #8829]在 Consume Queue Store 为 RocksDB 时支持 LMQ 分发,由 @lizhanhui 在 https://github.com/apache/rocketmq/pull/8842 提交
- [ISSUE #8850]使用正确的日志方法,由 @mawen12 在 https://github.com/apache/rocketmq/pull/8851 提交
- [ISSUE #8772]在广播模式重平衡中移除锁定 mq 的步骤,由 @redlsz 在 https://github.com/apache/rocketmq/pull/8774 提交
- [ISSUE #8442][RIP-70]提取自适应锁机制,由 @3424672656 在 https://github.com/apache/rocketmq/pull/8663 提交
- [ISSUE #8829]功能:提供 ConfigManagerV2 以更好地利用 RocksDB,由 @lizhanhui 在 https://github.com/apache/rocketmq/pull/8856 提交
- [ISSUE #8822]双写 cq,减少不必要的切换,由 @LetLetMe 在 https://github.com/apache/rocketmq/pull/8823 提交
- [ISSUE #8875]修复 HAConnection 泄漏,由 @crazywen 在 https://github.com/apache/rocketmq/pull/8876 提交
- [ISSUE #8725]在启动失败后清理 DefaultMQPushConsumer,由 @yuz10 在 https://github.com/apache/rocketmq/pull/8726 提交
- [ISSUE #8829]在重载时保持数据版本,并使 XXXConfigManagerV2 关闭同步,由 @lizhanhui 在 https://github.com/apache/rocketmq/pull/8891 提交
- [ISSUE #8885]解决 CK 数量统计不准确的问题,由 @RongtongJin 在 https://github.com/apache/rocketmq/pull/8886 提交
- [ISSUE #8808]解决 JDK21 不支持 'UseBiasedLocking' 虚拟机选项的问题,由 @taomaree 在 https://github.com/apache/rocketmq/pull/8809 提交
- [ISSUE #8882]更改 acl 签名的比较方法以提高安全性,由 @dingshuangxi888 在 https://github.com/apache/rocketmq/pull/8883 提交
- [ISSUE #8889]在循环外处理命名空间,由 @mawen12 在 https://github.com/apache/rocketmq/pull/8890 提交
- [ISSUE #8906]在循环外处理字符串转大写,由 @mawen12 在 https://github.com/apache/rocketmq/pull/8907 提交
- [ISSUE #8599]当两次收到 GO_AWAY 时抛出异常以关闭通道,由 @qianye1001 在 https://github.com/apache/rocketmq/pull/8862 提交
- [ISSUE #8917]gRPC 客户端的主题路由返回无权限消息队列,由 @dingshuangxi888 在 https://github.com/apache/rocketmq/pull/8919 提交
- [ISSUE #8921]为 AIO 添加 isWakeCommitWhenPutMessage,由 @zk-drizzle 在 https://github.com/apache/rocketmq/pull/8922 提交
- [ISSUE #8925]修复 ACL 2.0 更新用户的错误,由 @dingshuangxi888 在 https://github.com/apache/rocketmq/pull/8926 提交
- [ISSUE #8909]将空检查前置,由 @jjastan 在 https://github.com/apache/rocketmq/pull/8910 提交
- [ISSUE #8942]向 LmqBrokerStatsManager 添加 incGroupAckNums 和 incGroupCkNums,由 @RongtongJin 在 https://github.com/apache/rocketmq/pull/8943 提交
- [ISSUE #8829]使用 RocksDB 支持在配置 V1 中持久化 LMQ 消费者偏移量,由 @RongtongJin 在 https://github.com/apache/rocketmq/pull/8939 提交
- [ISSUE #8945]从临界区移除不必要的操作,由 @3424672656 在 https://github.com/apache/rocketmq/pull/8946 提交
- [ISSUE #8940]修复 exportMetadataInRocksDBCommand 的错误路径,由 @RongtongJin 在 https://github.com/apache/rocketmq/pull/8941 提交
- [ISSUE #8935]修复定时消息存储中积压指标单位错误,由 @GenerousMan 在 https://github.com/apache/rocketmq/pull/8936 提交
- [ISSUE #8765]修复启用 rocksdb 消费队列时延迟消息性能低的问题,由 @yuz10 在 https://github.com/apache/rocketmq/pull/8766 提交
- [ISSUE #8953]改进异步投递流程的 IO,由 @3424672656 在 https://github.com/apache/rocketmq/pull/8954 提交
- [ISSUE #8829]修复存在大量 LMQ CQ 时避免内存开销,由 @lizhanhui 在 https://github.com/apache/rocketmq/pull/8956 提交
- [ISSUE #8947]在计算消费者积压前通知 pop 请求,由 @lizhimins 在 https://github.com/apache/rocketmq/pull/8949 提交
- [ISSUE #8933]功能:DefaultPullConsumer 添加负载均衡开关,由 @humkum 在 https://github.com/apache/rocketmq/pull/8934 提交
- [ISSUE #8929]Proxy 在 grpc 协议发送时添加消息体为空的检查,由 @qianye1001 在 https://github.com/apache/rocketmq/pull/8930 提交
- [ISSUE #8877]重构 ReceiptHandleGroup 中的锁,以确保在 Future 无法完成时能够正确释放锁,由 @qianye1001 在 https://github.com/apache/rocketmq/pull/8916 提交
- [ISSUE #8955]修复分层存储中消息缓冲区未释放和分发线程退出的问题,由 @lizhimins 在 https://github.com/apache/rocketmq/pull/8965 提交
- [ISSUE #8972]添加 EnableLmqStats 选项以允许运行时监控 LMQ 统计信息,由 @RongtongJin 在 https://github.com/apache/rocketmq/pull/8973 提交
- [ISSUE #8961]在主题路由中通过主机自动识别地址方案,由 @dingshuangxi888 在 https://github.com/apache/rocketmq/pull/8962 提交
- [ISSUE #8460]当 revive 发现没有 broker name 字段的 ack 时设置默认 broker name,由 @lizhimins 在 https://github.com/apache/rocketmq/pull/8981 提交
- [ISSUE #8982]为 e2e 流水线动态安装最新 Go 版本,由 @chi3316 在 https://github.com/apache/rocketmq/pull/8985 提交
- [ISSUE #8976]修改文件段构造方法,由 @lizhimins 在 https://github.com/apache/rocketmq/pull/8977 提交
- [ISSUE #8963]修复发送到 ns 的 code36 请求,由 @yx9o 在 https://github.com/apache/rocketmq/pull/8964 提交
- [ISSUE #8968]引入 clearRetryTopicWhenDeleteTopic 选项以支持精确的外部主题删除,由 @RongtongJin 在 https://github.com/apache/rocketmq/pull/8969 提交
- [ISSUE #8991]PrepareHeartbeatData 不应默认设置 subscriptionDataSet 数据,由 @weihubeats 在 https://github.com/apache/rocketmq/pull/8992 提交
- [ISSUE #7199]GrpcClientChannel header 添加空判断,由 @weihubeats 在 https://github.com/apache/rocketmq/pull/7238 提交
- [ISSUE #9009]优化 DefaultPullConsumer 中的消息积压显示和指标,由 @qianye1001 在 https://github.com/apache/rocketmq/pull/9010 提交
- [ISSUE #8984]修复 broker 开关 enableMixedMessageType 不生效的问题,由 @redlsz 在 https://github.com/apache/rocketmq/pull/8986 提交
- [ISSUE #8950]移除 configPath 的多余空检查,由 @jjastan 在 https://github.com/apache/rocketmq/pull/8951 提交
- [ISSUE #8966]功能:向 acl 权限错误添加远程地址信息,由 @humkum 在 https://github.com/apache/rocketmq/pull/8967 提交
- [ISSUE #9007]修复 RemotingClient 中客户端连接本地 ip 为空的问题,由 @weihubeats 在 https://github.com/apache/rocketmq/pull/9008 提交
- [ISSUE #9014]修复 clusterAclConfigVersion 命令执行失败的问题,由 @yx9o 在 https://github.com/apache/rocketmq/pull/9017 提交
- [ISSUE #7480]修复在 commitlog 和 consumeQueue 被截断时 timerCheckPoint 中的偏移量无法修正的问题,由 @RongtongJin 在 https://github.com/apache/rocketmq/pull/7488 提交
- [ISSUE #9015]同步 SysFlag 和消息体压缩状态;允许省略消息体,由 @lizhanhui 在 https://github.com/apache/rocketmq/pull/9016 提交
- [ISSUE #8979]为定时消息重试逻辑添加可配置开关,由 @chi3316 在 https://github.com/apache/rocketmq/pull/8980 提交
- [ISSUE #9034]重构 (LmqBrokerStatsManager):重构 LmqBrokerStatsManager 中的冗余代码,由 @asapple 在 https://github.com/apache/rocketmq/pull/9034 提交
- [ISSUE #8974]支持撤回延迟消息,由 @imzs 在 https://github.com/apache/rocketmq/pull/8975 提交
- [ISSUE #9042]使用新参数更新 createTimerMessageStore 调用,由 @chi3316 在 https://github.com/apache/rocketmq/pull/9041 提交
- [ISSUE #9021]修正 acl 命令的错误消息,由 @yx9o 在 https://github.com/apache/rocketmq/pull/9022 提交
- [ISSUE #8970]移除冗余心跳,由 @weihubeats 在 https://github.com/apache/rocketmq/pull/8971 提交
- [ISSUE #8988]支持 dispatchBehindMilliseconds,由 @guyinyou 在 https://github.com/apache/rocketmq/pull/8989 提交
- [ISSUE #9028]调整部分 SYSTEM_ERROR 的错误码,由 @absolute8511 在 https://github.com/apache/rocketmq/pull/9027 提交
- [ISSUE #9054]优化 pop 模式下客户端消费消息时的日志打印,由 @mxsm 在 https://github.com/apache/rocketmq/pull/9055 提交
- [ISSUE #9002]当 bytebuffer 不足时,不抛出异常,由 @leizhiyuan 在 https://github.com/apache/rocketmq/pull/9003 提交
- [ISSUE #9072]修复重试主题获取主题路由的权限检查,由 @dingshuangxi888 在 https://github.com/apache/rocketmq/pull/9073 提交
- [ISSUE #9025][RIP-73]基于 RocksDB 的 Pop 消费改进,由 @lizhimins 在 https://github.com/apache/rocketmq/pull/9048 提交
- [ISSUE #8957]移除多余流量并修复缓存不一致问题,由 @3424672656 在 https://github.com/apache/rocketmq/pull/8958 提交
- [ISSUE #9069]修复分层存储中 IndexFile 的 ConcurrentModificationException,由 @wangshaojie4039 在 https://github.com/apache/rocketmq/pull/9071 提交
- [ISSUE #9075]在消息同步场景中避免消息类型校验,由 @dingshuangxi888 在 https://github.com/apache/rocketmq/pull/9076 提交
- [ISSUE #9080]修复分层存储中从缓存获取大消息时的传输逻辑,由 @yuz10 在 https://github.com/apache/rocketmq/pull/9079 提交
- [ISSUE #8974]添加撤回功能开关,默认关闭,由 @imzs 在 https://github.com/apache/rocketmq/pull/9067 提交
- [ISSUE #9080]在 fetcher 中不持有最终消息存储配置,由 @lizhimins 在 https://github.com/apache/rocketmq/pull/9086 提交
- [ISSUE #9025][RIP-73]修复 Pop 消费中重置偏移量不生效的问题,由 @lizhimins 在 https://github.com/apache/rocketmq/pull/9087 提交
- [ISSUE #9025][RIP-73]修改 Pop 消费 rocksdb 初始化配置,由 @lizhimins 在 https://github.com/apache/rocketmq/pull/9100 提交
- [ISSUE #9106]修复基于 rocksdb 的 Pop 消费中 revive 退避重试不生效的问题,由 @redlsz 在 https://github.com/apache/rocketmq/pull/9107 提交
- [ISSUE #8998]当剩余时间达到零时不需要重试,由 @3424672656 在 https://github.com/apache/rocketmq/pull/8999 提交
- [ISSUE #9105]修复 LMQ 中重复消费的问题,由 @RongtongJin 在 https://github.com/apache/rocketmq/pull/9101 提交
- [ISSUE #9108]重构 ColdDataCgCtrService#getColdDataFlowCtrInfo,由 @yx9o 在 https://github.com/apache/rocketmq/pull/9109 提交
- [ISSUE #9064]优化事务消息回调检查逻辑,由 @LilMosey 在 https://github.com/apache/rocketmq/pull/9062 提交
- [ISSUE #9112]加速 Pop 消费中的 revive 扫描并支持服务端重置偏移量,由 @lizhimins 在 https://github.com/apache/rocketmq/pull/9113 提交
- [ISSUE #9121]修复当值为 0 时 CRC32 校验失败的问题,由 @guyinyou 在 https://github.com/apache/rocketmq/pull/9122 提交
- [ISSEU #6426]修复从属 broker SubscriptionGroupConfig 和 MessageRequestMode 原子更新的问题,由 @AuroraTwinkle 在 https://github.com/apache/rocketmq/pull/8983 提交
- [ISSUE #9111]支持将 broker RocksDB 配置导出为 json 文件,由 @qianye1001 在 https://github.com/apache/rocketmq/pull/9114 提交
- [ISSUE #8895]修复 broker 关闭时的 NPE 并优化日志,由 @qianye1001 在 https://github.com/apache/rocketmq/pull/9094 提交
- [ISSUE #9128]修复 gRPC 客户端在切换代理后立即 ack 消息导致的 NPE,由 @qianye1001 在 https://github.com/apache/rocketmq/pull/9129 提交
- [ISSUE #4570]修复:Docker 使用时卷映射参数可能出现错误,简单修复,由 @OneCodeMonkey 在 https://github.com/apache/rocketmq/pull/9096 提交
- [ISSUE #9119]Invoke async 应处理原始异常而不是 CompletionException,由 @gaoyf 在 https://github.com/apache/rocketmq/pull/9120 提交
- [ISSUE #9160]确保 requestCode 顺序递增,由 @KiteSoar 在 https://github.com/apache/rocketmq/pull/9159 提交
- [ISSUE #9152]Broker getConsumeStats 支持输入多个主题,由 @qianye1001 在 https://github.com/apache/rocketmq/pull/9153 提交
- [ISSUE #9149]即使订阅键不存在,也在 offsetTable 中分配偏移量,由 @dingshuangxi888 在 https://github.com/apache/rocketmq/pull/9150 提交
- [ISSUE #9156]在 AclUtils#getAclRPCHook 中使用 fastjson2,由 @yx9o 在 https://github.com/apache/rocketmq/pull/9157 提交
- [ISSUE #9174]添加一组预定义的组和常用检查…,由 @ltamber 在 https://github.com/apache/rocketmq/pull/9175 提交
- [ISSUE #9172]删除订阅组时清理拉取偏移量和重置偏移量,由 @lizhimins 在 https://github.com/apache/rocketmq/pull/9173 提交
- [ISSUE #9181]更新 fastjson 版本,由 @ltamber 在 https://github.com/apache/rocketmq/pull/9180 提交
- [ISSUE #9182]修复当 needWaitForService 设置为 true 时 NameServer 永远无法准备就绪的问题,由 @gaoyf 在 https://github.com/apache/rocketmq/pull/9183 提交
- [ISSUE #9187]当更改不可见时间时,如果 queueOffset 等于 maxOffset,请求应被拒绝,由 @RongtongJin 在 https://github.com/apache/rocketmq/pull/9186 提交
- [ISSUE #9201]清理死代码模式并提高可读性和可维护性,由 @Kris20030907 在 https://github.com/apache/rocketmq/pull/9202 提交
- [ISSUE #9191]为 Proxy 和 Broker 提供替换远程通信层实现的能力,由 @f1amingo 在 https://github.com/apache/rocketmq/pull/9192 提交
- [ISSUE #9203]用 RequestCode 中定义的静态变量替换数字,由 @xinzhuxiansheng 在 https://github.com/apache/rocketmq/pull/9204 提交
- [ISSUE #9206]修复 rocksdb ha 中从属同步主题订阅的问题,由 @fujian-zfj 在 https://github.com/apache/rocketmq/pull/9207 提交
- [ISSUE #8340]RuntimeInfo 和 ClusterListSubCommand 显示 ackThreadPoolQueueSize 和 ackThreadPoolQueueHeadWaitTimeMills,由 @RongtongJin 在 https://github.com/apache/rocketmq/pull/8339 提交
- [ISSUE #8589]使用 DoubleWriteCQ 时优化 RocksDB CQ 关闭,由 @qianye1001 在 https://github.com/apache/rocketmq/pull/9212 提交
- [ISSUE #9213]修复分层存储中数据清理后获取最早时间错误的问题,由 @lizhimins 在 https://github.com/apache/rocketmq/pull/9214 提交
- [ISSUE #9196]Broker 在收到通知时返回 pop 统计信息,由 @qianye1001 在 https://github.com/apache/rocketmq/pull/9197 提交
- [ISSUE #9217]修复启用 pop 消费者服务时 broker 的 inflight 和可用消息计数不正确的问题,由 @lizhimins 在 https://github.com/apache/rocketmq/pull/9218 提交
- [ISSUE #9221]提取 BrokerPathConfigHelper 中的部分公共代码,由 @yx9o 在 https://github.com/apache/rocketmq/pull/9222 提交
- [ISSUE #8127]优化时间轮的指标计算逻辑,由 @3424672656 在 https://github.com/apache/rocketmq/pull/8128 提交
- [ISSUE #9184]优化 Pop 中的 QueueLockManager#tryLock 方法,由 @mxsm 在 https://github.com/apache/rocketmq/pull/9185 提交
新贡献者
- @mawen12 进行了他们的首次贡献,地址:https://github.com/apache/rocketmq/pull/8821
- @taomaree 进行了他们的首次贡献,地址:https://github.com/apache/rocketmq/pull/8809
- @jjastan 进行了他们的首次贡献,地址:https://github.com/apache/rocketmq/pull/8910
- @asapple 进行了他们的首次贡献,地址:https://github.com/apache/rocketmq/pull/9034
- @draw233 进行了他们的首次贡献,地址:https://github.com/apache/rocketmq/pull/9037
- @LilMosey 进行了他们的首次贡献,地址:https://github.com/apache/rocketmq/pull/9062
- @AuroraTwinkle 进行了他们的首次贡献,地址:https://github.com/apache/rocketmq/pull/8983
- @OneCodeMonkey 进行了他们的首次贡献,地址:https://github.com/apache/rocketmq/pull/9096
- @Kris20030907 进行了他们的首次贡献,地址:https://github.com/apache/rocketmq/pull/9124
- @KiteSoar 进行了他们的首次贡献,地址:https://github.com/apache/rocketmq/pull/9159
- @Lynxhide 进行了他们的首次贡献,地址:https://github.com/apache/rocketmq/pull/9158
- @xinzhuxiansheng 进行了他们的首次贡献,地址:https://github.com/apache/rocketmq/pull/9204
完整变更日志: https://github.com/apache/rocketmq/compare/rocketmq-all-5.3.1...rocketmq-all-5.3.2