一、Java 的 PushConsumer 顺序消息在特定场景下无法保证顺序
·客户端列表
·升级客户端操作指南
建议升级到5.0.7,直接升级依赖版本即可。
二、golang 版本低,路由表可能被清空
·客户端列表
v5.0.1及以下在一些网络超时的场景下,由于获取不到路由表,进行了路由表清空,相关问题:golang: optimize the logic of obtaining routing tasks。
·升级客户端操作指南
建议升级到 v5.1.1-rc1,直接升级依赖版本即可。
三、Java 消息轨迹可能不完整
·客户端列表
4.9.4及以下在一些特殊场景下可能会遇到。
·升级客户端操作指南
建议升级到4.9.5,直接升级依赖版本即可。
四、Go SDK 首次启动可能报错 fetch offset of mq from broker error
·客户端列表
master 分支之下都可能遇到,比如 v2.1.2 及以下,启动报错 fetch offset of mq from broker error,相关问题:fetch offset of mq from broker error
·升级客户端操作指南
建议升级到最新的 master branch 作为 Commit ID 版本即可。
五、Java SDK 消费过程中出现报错 the queue's messages, span too long, so do flow control
·客户端列表
4.7.1及以下在一些特殊场景下可能会遇到,在消费过程中,日志中打印如上日志,并且消费会被限流,相关问题:the queue's messages, span too long, so do flow control。
·升级客户端操作指南
建议升级到4.9.5,直接升级依赖版本即可。
六、Java SDK(rocketmq-remoting)存在远程命令执行漏洞 CVE-2023-33246
·客户端列表
4.8.3 及以下版本的 rocketmq-remoting 组件存在 CVE-2023-33246 漏洞,攻击者可通过 NameServer 或 Broker 触发远程命令执行(RCE)。同时该版本依赖的 Netty 组件也需要升级。
·升级客户端操作指南
建议升级到 4.8.7 及以上版本,直接升级依赖版本即可。相关问题:CVE-2023-33246。
七、Java SDK(rocketmq-clients gRPC)存在 ack 确认异常
·客户端列表
v5.0.8 及以下版本在特定场景下可能出现 ack 确认失败的 Bug(已通过 GitHub Issue 确认),可能导致消息重复消费。
·升级客户端操作指南
建议升级到 5.0.7 及以上版本(5.0.7 已修复该 Bug),直接升级依赖版本即可。相关问题:ack bug in rocketmq-clients。
八、Go SDK(rocketmq-client-go)存在 goroutine 泄漏与消息解析异常
·客户端列表
v2.1.0 及以下版本存在 goroutine 泄漏问题(issue #4694),以及消息批量发送时解析失败(issue #4697)和 ack 确认失败(issue #4690)等问题。
·升级客户端操作指南
建议升级到 v2.1.1 及以上版本,直接升级依赖版本即可。相关问题详见 apache/rocketmq-client-go 仓库。
九、Python SDK(rocketmq-client-python)gRPC 版本过低导致兼容性问题
·客户端列表
5.0.6 版本的 rocketmq-client-python 依赖的 gRPC 版本(2.51.0)存在兼容性问题。建议使用 Python 3.10 及以上版本运行。
·升级客户端操作指南
建议升级到 5.1.1 版本,该版本修复了 gRPC 依赖问题。相关说明详见 apache/rocketmq-client-python 仓库。
十、各语言客户端 SDK 版本状态一览
以下为各语言 RocketMQ 客户端 SDK 的当前版本、推荐版本及风险状态汇总:
| 语言 | SDK 组件 | 当前在用版本 | 推荐版本 | 状态说明 |
| Java | rocketmq-remoting(4.x 协议) | 4.8.3 | 4.8.7+ | 存在 CVE-2023-33246,建议升级 |
| Java | rocketmq-clients gRPC(5.x) | 5.0.8 | 5.2.1 | 5.0.7 已修复 ack Bug,建议跟进最新 5.2.x |
| Go | rocketmq-client-go(remoting) | 5.1.2 | 5.1.4 | v5.1.0 为 feature-complete 稳定版,支持 PushConsumer、SimpleConsumer、事务消息 |
| Go | rocketmq-clients Go gRPC | master | 2.0.0 | 4.x 集群不能直接接入 Go SDK,建议使用 2.0.0 |
| Python | rocketmq-client-python | 5.0.6 | 5.1.1 | 修复 gRPC 依赖问题,推荐 Python 3.10+ |
| C/C++ | rocketmq-client-cpp(remoting) | master | 2.2.0 | 2.1.0 引入 Windows 实时编译路径 |
| C/C++ | rocketmq-client-cpp(gRPC) | master | 5.0.4 | C++ gRPC 正式版代码迭代中,尚未完全提交 |
| C# | rocketmq-clients C# gRPC | 5.2.1 | 5.2.1 | 5.0.0 即为完整正式版,支持 Producer + PushConsumer + SimpleConsumer,要求 .NET 6+ |
| C# | rocketmq-client-csharp(remoting) | master | 5.2.1 | 已发布正式包,支持 .NET 6+ |
| Node.js | rocketmq-clients Node gRPC | 1.0.1 | 1.0.7 | 1.0.0(2024-11-22)首个正式版发布,要求 Node.js ≥ 18.0,推荐 ≥ 18.17.0 (LTS) |
| Node.js | rocketmq-client-node(remoting) | master | — | 仅 2019 年版本,未正式发布,不建议生产使用 |
| Rust | rocketmq-clients Rust gRPC | master | — | 轻量 SDK 规划中,当前未发布 release,不建议生产使用 |
| Rust | rocketmq-remoting(remoting) | master | — | Producer + SimpleConsumer 功能已具备,但无正式版本 |
| PHP | rocketmq-clients PHP gRPC | master | — | 不推荐使用,无正式版,master 分支长期未更新 |
十一、暂未正式发布的客户端 SDK 说明
以下语言的 RocketMQ 客户端 SDK 暂未发布正式版本或未达到生产可用状态,不建议在新业务中接入:
·Node.js(remoting 协议):仓库 rocketmq-client-node 仅在 2019 年发布过一个版本,后续无活跃维护。如有 Node.js 接入需求,建议使用 gRPC 协议的 rocketmq-clients Node 版本(当前推荐 1.0.7)。
·Rust:rocketmq-clients Rust gRPC 和 remoting 协议均处于 master 分支开发状态,尚未发布正式 release,预计在后续版本规划中。
·PHP:rocketmq-clients/tree/php 分支的 gRPC 客户端长期未更新,无正式版本,不建议生产环境使用。