小编Gar*_*hon的帖子

Kafka Producer 0.9性能问题与小消息

在发送小消息时,我们观察到Java Kafka Producer 0.9客户端的性能非常差.消息不会被累积到更大的请求批处理中,因此每个小记录都是单独发送的.

我们的客户配置有什么问题?或者这是另一个问题吗?


使用Kafka Client 0.9.0.0.我们没有在Kafka未发布的9.0.1或9.1固定或未解析的列表中看到任何相关的帖子,因此我们专注于我们的客户端配置和服务器实例.

我们了解linger.ms应该使客户端将记录累积到批处理中.

我们将linger.ms设置为10(并且还尝试了100和1000)但这些不会导致批量累积记录.记录大小约为100字节,请求缓冲区大小为16K,我们预计在一个请求中将发送大约160条消息.

尽管已经分配了一个新的Bluemix Messaging Hub(Kafka Server 0.9)服务实例,但客户端上的跟踪似乎表明该分区可能已满.测试客户端在没有其他I/O的循环中发送多个消息.


日志显示带有可疑行的重复序列:" 唤醒发件人,因为主题mytopic分区0已满或获得新批次 ".

因此,在我们的测试用例中,新分配的分区应该基本上是空的,那么为什么生产者客户端会获得一个新的批处理?

2015-12-10 15:14:41,335 3677 [main] TRACE com.isllc.client.producer.ExploreProducer  - Sending record: Topic='mytopic', Key='records', Value='Kafka 0.9 Java Client Record Test Message 00011 2015-12-10T15:14:41.335-05:00'  
2015-12-10 15:14:41,336 3678 [main] TRACE org.apache.kafka.clients.producer.KafkaProducer  - Sending record ProducerRecord(topic=mytopic, partition=null, key=[B@670b40af, value=[B@4923ab24 with callback null to topic mytopic partition 0  
2015-12-10 15:14:41,336 3678 [main] TRACE org.apache.kafka.clients.producer.internals.RecordAccumulator  - Allocating a new 16384 byte message buffer for topic mytopic partition 0  
2015-12-10 …

apache-kafka kafka-producer-api message-hub

1
推荐指数
1
解决办法
3753
查看次数