Skip to content

Latest commit

 

History

History
82 lines (52 loc) · 2.57 KB

README.adoc

File metadata and controls

82 lines (52 loc) · 2.57 KB

Camel Kafka example

Introduction

An example which shows how to integrate Camel with Kafka avro to make use of avro serialize/deserializer

First a kafka server should be started:

$ ./bin/schema-registry-start etc/schema-registry/schema-registry.properties

Then start confluent schema registry: register_schema.py is simple custom python script to register the employee.avsc schema in confluent schema registry:

$ python3.6 src/main/resources/register_schema.py http://localhost:8081 employees-avro src/main/resources/avro/employee.avsc
Schema Registry URL: http://localhost:8081
Topic: employees-avro
Schema file: src/main/resources/avro/employee.avsc
Success
$ curl --noproxy '*' http://localhost:8081/subjects/employees-avro-value/versions/1
{"subject":"employees-avro-value","version":1,"id":2,"schema":"{\"type\":\"record\",\"name\":\"Employee\",\"namespace\":\"com.example.kafkatutorials\",\"fields\":[{\"name\":\"firstName\",\"type\":\"string\"},{\"name\":\"lastName\",\"type\":\"string\"},{\"name\":\"birthDate\",\"type\":\"long\"}]}"}

To delete:

$ curl -X DELETE http://localhost:8081/subjects/topic-value/versions/version-no

Preparing Kafka

This example requires that Kafka Server is up and running.

$ ${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

$ ${KAFKA}/bin/kafka-topics.bat --create --zookeeper <zookeeper host ip>:<port> --replication-factor 1 --partitions 1 --topic employees-avro

On linux run

$ ${KAFKA}/bin/kafka-topics.sh --create --zookeeper <zookeeper host ip>:<port> --replication-factor 1 --partitions 1 --topic employees-avro

Build

You will need to compile this example first:

$ mvn compile

Run

Run the consumer first in separate shell

$ mvn spring-boot:run

camel-context.xml file has both kafka-producer and kafka-consumer routes defined to produce/consume messages to topic my-topic.

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 let us know.

We also love contributors, so get involved :-)

The Camel riders!