J'écris un producteur dans Scala et je veux faire le dosage. La façon dont le traitement par lots devrait fonctionner est, il devrait contenir les messages dans la file d'attente jusqu'à ce qu'il soit plein et puis les poster tous ensemble sur le sujet. Mais d'une manière ou d'une autre ça ne marche pas. Au moment où je commence à envoyer un message, il commence à poster le message un par un. Est-ce que quelqu'un sait comment utiliser le dosage dans Kafka Producer.Lot ne fonctionne pas dans Kafka Producer with Scala
val kafkaStringSerializer = "org.apache.kafka.common.serialization.StringSerializer"
val batchSize: java.lang.Integer = 163840
val props = new Properties()
props.put("key.serializer", kafkaStringSerializer)
props.put("value.serializer", kafkaStringSerializer)
props.put("batch.size", batchSize);
props.put("bootstrap.servers", "localhost:9092")
val producer = new KafkaProducer[String,String](props)
val TOPIC="topic"
val inlineMessage = "adsdasdddddssssssssssss"
for(i<- 1 to 10){
val record: ProducerRecord[String, String] = new ProducerRecord(TOPIC, inlineMessage)
val futureResponse: Future[RecordMetadata] = producer.send(record)
futureResponse.isDone
println("Future Response ==========>" + futureResponse.get().serializedValueSize())
}
je l'ai fait. J'ai props.put ("linger.ms", 5000). Mais ne fonctionne toujours pas. Maintenant, je vois mes messages arriver avec un retard de 5 sec. Le message arrive toujours un par un mais avec un retard de 5 sec. – user1733735
Les messages sont stockés par lots et récupérés par lots, mais ils sont toujours présentés au consommateur sous forme de messages individuels. Ne vous attendez pas à lire un seul message et à recevoir un lot de messages en guise de réponse. Ce n'est pas comme ça que Kafka fonctionne. –
Donc, si je dois vérifier que mon lot est fait correctement. Comment puis-je le vérifier? – user1733735