前置条件:
每条话单大概0.7K
写客户端单线程
props.put("acks","all");
props.put("retries", 0);
props.put("batch.size", 16384);
props.put("linger.ms", 100);
props.put("buffer.memory", 33554432);
props.put("key.serializer","org.apache.kafka.common.serialization.IntegerSerializer");
props.put("value.serializer","org.apache.kafka.common.serialization.StringSerializer");
写性能测试数据:
一个分区一个备份:
1. 客户端生产1000万条话单消息,每一万条消息缓存发送一次
开始时间time=Apr 21, 2017 3:57:26 PM
结束时间time=Apr 21, 2017 3:58:26 PM
写性能为:16.6万/s
2. 客户端生产1亿条话单消息,每一万条消息缓存发送一次
开始时间time=Apr 21, 2017 4:01:53 PM
结束时间time=Apr 21, 2017 4:12:19 PM
写性能为:16.6万/s
3. 客户端生产1000万条话单消息,每100条消息缓存发送一次
开始时间time=Apr 21, 2017 4:34:02 PM
结束时间time=Apr 21, 2017 4:35:41 PM
写性能为:10万/s
--结论: 从1和2可见同样情况下,kafka的写速度跟数据量几乎无关,保持平稳,从1和3可见,kafka的速度和每次缓存发送的条数有关,发送数据量越小越频繁则写性能下降。