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–6earliest / latest / 按时间戳
3Metadatav0–12默认自动创建 topic(auto.create.topics.enable)

消费组(经典协议)

KeyAPI支持版本状态差异 / 说明
8OffsetCommit提交消费位点
9OffsetFetchv8 支持多 group 批量查询
10FindCoordinatorv0–4group 与 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
36SaslAuthenticateSASL token 交换

Topic / Partition 管理

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

配置管理

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

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

集群与运维

KeyAPI支持版本状态差异 / 说明
60DescribeCluster集群信息
75DescribeTopicPartitionsv0topic 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 吧!⭐ 你的支持是我们最大的动力 🚀