mirror of https://github.com/apache/kafka.git
This pull request introduces a new example application, `TransactionalClientDemo`, which demonstrates how to use Kafka's transactional capabilities for exactly-once processing semantics. The application consumes messages from an input topic, processes them to generate word count statistics, and produces the results to an output topic. It also includes robust error handling and transaction management. ### Key Changes: * Added `TransactionalClientDemo` class to demonstrate a transactional Kafka client application. It handles consuming messages, processing them, and producing results to an output topic while ensuring exactly-once processing semantics. * Implements transactional error handling based on KIP-1050 guidelines, including handling `TransactionAbortableException`, `InvalidConfigurationException`, `ApplicationRecoverableException`, and generic `KafkaException`. Ref : [KIP-1050](https://cwiki.apache.org/confluence/display/KAFKA/KIP-1050%3A+Consistent+error+handling+for+Transactions) Reviewers: Justine Olshan <jolshan@confluent.io>, Artem Livshits <alivshits@confluent.io> |
||
---|---|---|
.. | ||
bin | ||
src/main/java/kafka/examples | ||
README.md |
README.md
Kafka client examples
This module contains some Kafka client examples.
- Start a Kafka 2.5+ local cluster with a plain listener configured on port 9092.
- Run
examples/bin/java-producer-consumer-demo.sh 10000
to asynchronously send 10k records to topic1 and consume them. - Run
examples/bin/java-producer-consumer-demo.sh 10000 sync
to synchronous send 10k records to topic1 and consume them. - Run
examples/bin/exactly-once-demo.sh 6 3 10000
to create input-topic and output-topic with 6 partitions each, start 3 transactional application instances and process 10k records.