客户端支持 |
Java,.NET,C++等 |
Java、Scala 等 |
Java, C++, Go |
协议和规范 |
推送模型,支持OpenWire,STOMP,AMQP,MQTT,JMS |
拉取模型,支持TCP |
拉取模型,支持TCP,JMS,开放消息传递 |
有序消息 |
独占消费者或独占队列可以确保排序 |
确保分区内消息的顺序 |
确保消息的严格排序,并且可以优雅地横向扩展 |
定时消息 |
支持 |
不支持 |
支持 |
批处理消息 |
不支持 |
支持,具有异步生产者 |
支持,具有同步模式以避免消息丢失 |
广播消息 |
支持 |
不支持 |
支持 |
邮件过滤器 |
支持 |
支持,您可以使用 Kafka 流过滤消息 |
支持的基于 SQL92 的属性过滤器表达式 |
服务器触发的重新传递 |
不支持 |
不支持 |
支持 |
消息存储 |
使用JDBC和高性能日志(如levelDB,kahaDB)支持非常快速的持久性 |
高性能文件存储 |
高性能和低延迟文件存储 |
消息追溯 |
支持 |
支持的偏移指示 |
支持的时间戳和偏移量 |
消息优先级 |
支持 |
不支持 |
不支持 |
高可用性和故障转移 |
支持,取决于存储,如果使用levelDB,则需要ZooKeeper服务器 |
支持,需要 ZooKeeper 服务器 |
支持主从模型,无需其他套件 |
消息跟踪 |
不支持 |
不支持 |
支持 |
配置 |
默认配置为低级,用户需要优化配置参数 |
Kafka 使用键值对格式进行配置。这些值可以从文件提供,也可以以编程方式提供。 |
开箱即用,用户只需要注意几个配置 |
管理和操作工具 |
支持 |
支持,使用终端命令公开核心指标 |
支持的丰富 Web 和终端命令,用于公开核心指标 |