Using Kafka
Features
Kafka is a popular publish-subscribe messaging system. JHipster has an optional support for Kafka, that will:
- Configure Kafka clients with JHipster.
- Add the necessary configuration in the
application-*.yml - Generate a Docker Compose configuration file, so Kafka is usable by typing
docker-compose -f src/main/docker/kafka.yml up -d
Prerequisite
Generate a new application and make sure to select Asynchronous messages using Apache Kafka when prompted for technologies you would like to use. A Docker Compose configuration file is generated and you can start Kafka with the command:
docker-compose -f src/main/docker/kafka.yml up -d
Consumer and Producer
A consumer (<appName>KafkaConsumer class) is running and can be adapted to your needs.
A producer (<appName>KafkaProducer class) is also available and can be called through a REST endpoint (<appName>KafkaResource class).
Running the app
Allow access to the endpoint in SecurityConfiguration.java:
.antMatchers("/api/<appName>-kafka/publish").permitAll()
If you invoke the endpoint http://localhost:8080/api/<appName>-kafka/publish?message=..., you should see the message logged to the console.