blob: 2239366407459d1f2b47ee54a5077be6b18dea41 [file] [log] [blame]
== Camel Kafka example
=== Introduction
An example which shows how to integrate Camel with Kafka.
This project consists of the following examples:
1. Send messages continuously by typing on the command line.
2. Example of partitioner for a given producer.
3. Topic is sent in the header as well as in the URL.
=== Preparing Kafka
This example requires that Kafka Server is up and running. For this, assuming that environment variable `KAFKA` has been
set to the home directory of the Kafka distribution, you will need to start ZooKeeper and a Kafka Broker thanks to
the next commands:
On Windows run
[source,sh]
----
$ %KAFKA%\bin\windows\zookeeper-server-start.bat ${KAFKA}/config/zookeeper.properties
$ %KAFKA%\bin\windows\kafka-server-start.bat ${KAFKA}/config/server.properties
----
On linux run
[source,sh]
----
$ ${KAFKA}/bin/zookeeper-server-start.sh ${KAFKA}/config/zookeeper.properties
$ ${KAFKA}/bin/kafka-server-start.sh ${KAFKA}/config/server.properties
----
You will need to create following topics before you run the examples.
On Windows run
[source,sh]
----
$ %KAFKA%\bin\windows\kafka-topics.bat --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 2 --topic TestLog
$ %KAFKA%\bin\windows\kafka-topics.bat --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic AccessLog
----
On linux run
[source,sh]
----
$ ${KAFKA}/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 2 --topic TestLog
$ ${KAFKA}/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic AccessLog
----
=== Build
You will need to compile this example first:
[source,sh]
----
$ mvn compile
----
=== Run
Run the consumer first in a shell
[source,sh]
----
$ mvn exec:java -Pkafka-consumer
----
Run the message producer in a separate shell
[source,sh]
----
$ mvn exec:java -Pkafka-producer
----
Initially, some messages are sent programmatically.
On the command prompt, type the messages. Each line is sent as one message to kafka
Press `Ctrl+C` to exit.
=== Configuration
You can configure the details in the file:
`src/main/resources/application.properties`
You can enable verbose logging by adjusting the `src/main/resources/log4j2.properties`
file as documented in the file.
=== Help and contributions
If you hit any problem using Camel or have some feedback,
then please https://camel.apache.org/community/support/[let us know].
We also love contributors,
so https://camel.apache.org/community/contributing/[get involved] :-)
The Camel riders!