Skip to content

协议兼容矩阵 ​

本文逐 API 列出 RobustMQ Kafka 的兼容情况:支持的版本范围、实现状态,以及与原生 Kafka 的差异。这是判断你的客户端 / 工具能否直连的权威依据。

RobustMQ Kafka API 覆盖概览

状态图例 ​

图标含义
✅完整:按协议语义实现,可直接使用
🟡部分:已通告并接受请求,但语义有裁剪(如 no-op、不强制)
⚪刻意不支持:返回明确错误而非崩溃,设计上不提供
❌未实现:不在 ApiVersions 中通告,客户端使用会快速失败

"支持版本"指 RobustMQ 在 ApiVersions 中通告的版本范围;未标注版本处表示按客户端协商版本处理。

数据面 ​

KeyAPI支持版本状态差异 / 说明
0Producev0–7✅支持幂等写;事务写被拒绝;LogAppendTime 未应用
1Fetchv4–13✅消费侧固定返回未压缩记录;无增量 fetch session;partition_leader_epoch=0;无 read_committed
2ListOffsetsv0–6✅earliest / latest / 按时间戳
3Metadatav0–12✅默认自动创建 topic(auto.create.topics.enable)

消费组(经典协议) ​

KeyAPI支持版本状态差异 / 说明
8OffsetCommit—✅提交消费位点
9OffsetFetch—✅v8 支持多 group 批量查询
10FindCoordinatorv0–4✅group 与 transaction 都返回协调器;事务在后续 API 快速失败
11JoinGroupv0–6✅加入组、触发 rebalance
12Heartbeat—✅维持成员资格
13LeaveGroup—✅主动离组
14SyncGroup—✅同步分区分配
15DescribeGroups—✅查询组状态
16ListGroups—✅列出所有组
42DeleteGroups—✅删除组
47OffsetDelete—✅删除已提交位点

消费组(KIP-848,下一代) ​

KeyAPI支持版本状态差异 / 说明
68ConsumerGroupHeartbeatv0–1✅服务端分配;不支持 subscribed_topic_regex
69ConsumerGroupDescribev0–1✅查询新一代消费组

幂等 Producer ​

KeyAPI支持版本状态差异 / 说明
22InitProducerIdv0–3✅仅幂等;带 transactional_id 返回 TRANSACTIONAL_ID_AUTHORIZATION_FAILED

认证与握手 ​

KeyAPI支持版本状态差异 / 说明
17SaslHandshakev1✅选择 SASL 机制(SCRAM-SHA-256 / SCRAM-SHA-512)
18ApiVersionsv0–4✅连接后第一个请求,协商可用 API
36SaslAuthenticate—✅SASL token 交换

Topic / Partition 管理 ​

KeyAPI支持版本状态差异 / 说明
19CreateTopicsv0–7✅拒绝手动副本分配(副本由存储层管理)
20DeleteTopics—✅删除 topic
21DeleteRecords—✅offset > HW 返回 OffsetOutOfRange
37CreatePartitions—✅扩分区

配置管理 ​

KeyAPI支持版本状态差异 / 说明
32DescribeConfigs—✅查询配置
33AlterConfigs—✅修改配置
44IncrementalAlterConfigs—✅增量修改配置
74ListConfigResources—🟡no-op:通告但不返回资源

配置多数可存储但不强制,详见 兼容性与限制。

集群与运维 ​

KeyAPI支持版本状态差异 / 说明
60DescribeCluster—✅集群信息
75DescribeTopicPartitionsv0✅topic partition 详情
61DescribeProducers—❌不通告
34AlterReplicaLogDirs—⚪刻意不支持(返回错误,不崩溃)
35DescribeLogDirs—⚪刻意不支持
43ElectLeaders—⚪刻意不支持(leader 由存储层管理)
45AlterPartitionReassignments—⚪刻意不支持(副本自动管理)
46ListPartitionReassignments—⚪刻意不支持
57UpdateFeatures—⚪刻意不支持

安全:ACL / 配额 / SCRAM 凭据 ​

KeyAPI支持版本状态差异 / 说明
29DescribeAcls—✅查询 ACL(不参与鉴权强制)
30CreateAcls—✅创建 ACL(不强制)
31DeleteAcls—✅删除 ACL(不强制)
48DescribeClientQuotas—✅查询配额(仅 client-id,不参与限流)
49AlterClientQuotas—✅修改配额(不强制)
50DescribeUserScramCredentials—✅查询 SCRAM 凭据
51AlterUserScramCredentials—✅增删 SCRAM 凭据(SASL 认证据此校验)

委托令牌 ​

KeyAPI支持版本状态差异 / 说明
38CreateDelegationToken—✅元数据管理;令牌不参与认证
39RenewDelegationToken—✅续期(元数据)
40ExpireDelegationToken—✅过期(元数据)
41DescribeDelegationToken—✅查询(元数据)

客户端遥测(KIP-714) ​

KeyAPI支持版本状态差异 / 说明
71GetTelemetrySubscriptions—🟡no-op:接受但不下发订阅
72PushTelemetry—🟡no-op:接受但不处理指标

事务(不支持) ​

以下 API 不在 ApiVersions 中通告,客户端启用事务会快速失败。

KeyAPI状态
24AddPartitionsToTxn❌
25AddOffsetsToTxn❌
26EndTxn❌
28TxnOffsetCommit❌
65DescribeTransactions❌
66ListTransactions❌

FindCoordinator 会为 transaction 返回协调器,但随后的事务 API 立即失败;InitProducerId 仅支持幂等模式。

Share Group(KIP-932,不支持) ​

Share Group 相关 API 全部 ❌ 未支持(ShareGroupHeartbeat / ShareGroupDescribe / ShareFetch / ShareAcknowledge / DescribeShareGroupOffsets / AlterShareGroupOffsets / DeleteShareGroupOffsets 等)。

延伸阅读 ​

🎉 既然都登录了 GitHub,不如顺手给我们点个 Star 吧!⭐ 你的支持是我们最大的动力 🚀