Kafka发送不同确认方式的性能差异
背景 Kafka的性能众所周知,Producer支持acknowledge模式。即Kafka会想Producer返回消息发送的结果。但是在Java Client中,acknowledge的确认有两种:同步和异步。 同步是通过调用future.get()实现的;异步则是通过提供callback方法来实现。写了个简单的程序测试一下单线程中吞吐差异能有多大。注意这里只考虑横向对比。 发送端单线程 Kafka为单集群节点 topic的分区数为1 key长度1 payload长度100 测试工具 JMeter Kafka Meter future.get() + batch size =1 future.get() + batch size = 16K callback + batch size = 16k callback + batch size = 1