Hi, I am testing an app with transactions on the producer side of kafka (0.11.0.1) . I defined the producer config (see below) and added the necessary lines in the app (#initTransaction, #begintransaction and #commitTransaction) around the existing #send The problem I am facing is that each transcation takes up to 150ms to be treated which doesn't make sense, even for a laptop ! I have tested some batch size config witout any success (messages are around 100 bytes) I certainly made a mistake in the setup but can't figure out which one, or how to investigate. I checked by removing the transaction lines and the app works fine (in my case less than 200 ms for 100 "send"s to kafka)
My config is : 3 VMs on my laptop for the kafka cluster. My main topic has 3 partitions, with 3 replicas and the min.insync .replicas is set to 2 the producer is defined by (remaing configs by default) final Properties props = new Properties(); props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrap_Servers); props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, org.apache.kafka.common.serialization.StringSerializer.class); props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, io.confluent.kafka.serializers.KafkaAvroSerializer.class); props.put(AbstractKafkaAvroSerDeConfig. SCHEMA_REGISTRY_URL_CONFIG,schema_Registry_URL); props.put(ProducerConfig.ACKS_CONFIG, "all"); props.put(ProducerConfig.RETRIES_CONFIG , 5); props.put(ProducerConfig.ENABLE_IDEMPOTENCE_CONFIG,true); props.put(ProducerConfig.TRANSACTIONAL_ID_CONFIG, transactionnalId); props.put(ProducerConfig. MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION,1); confluentProducer = new KafkaProducer<>(props); Any idea what could be wrong ? have I forgotten something ? Thanks Hugues DESLANDES