本文从稳定性、内核能力、治理能力等方面对比阿里云消息队列Kafka版与开源Apache Kafka。

稳定性

项目 消息队列Kafka版 Apache Kafka
磁盘水位 磁盘写满删除旧数据。 磁盘写满直接宕机。
线程池隔离 读冷数据仍可以保证写入基本正常。 读冷数据直接导致线程堵塞,数据写入大量失败。
分区规模 万级分区仍然可以保证稳定写入。 千级分区就会出现大量抖动。
巡检系统 针对死锁、宕机等问题进行自动发现和修复。 无。
Bug修复 及时发现并修复。 只能等社区缓慢修复,且通常要等新版发布,周期长。

内核能力

项目 消息队列Kafka版 Apache Kafka
弹性能力 秒级弹缩,业务几乎无感知。 小时级弹缩,期间会因为复制流量加大,对集群造成影响。
存储成本 专业版提供高可靠云存储,节省大量存储空间。 出于可用性和可靠性考虑,业界通常都是3副本存储,存储压力大。

治理能力

项目 消息队列Kafka版 Apache Kafka
版本升级 一键自助升级。 手工操作易出错。
Metrics曲线 能看到完整Metrics曲线,追踪流量、排查问题必备。 只能看到实时Metrics,历史数据较难查看。
堆积告警 告警及时发现问题。 无。
订阅关系 完整的订阅关系。 比较简略。
分区状态 可以看到完整的状态图。 比较简略。
发送消息 控制台直接发送消息。 只能命令行操作,成本高。
查询消息 控制台根据时间或者位点直接查看消息。 命令行可以消费,但无法根据位点或者时间直接定位到具体的消息。