kafkastreams

Initial Setup

build kafka docker image

Download kafka docker image

git clone https://github.com/wurstmeister/kafka-docker.git

Update docker compose yml file

docker-compose-single-broker.yml

version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
  kafka:
    build: .
    ports:
      - "9092:9092"
    environment:
      KAFKA_LISTENERS: PLAINTEXT://:9092
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092
      KAFKA_CREATE_TOPICS: "test:1:1"
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

Update /etc/hosts

This required to run kafka in docker env with single broker on mac

127.0.0.1 kafka
127.0.0.1 zookeeper

Build image

docker-compose -f docker-compose-single-broker.yml up -d

Application

Actually we have 3 Spring Boot applications

producer

Generate text contains words separated by spaces and send it to kafka topic

consumer

Reads kafka topic

streams

Count words on the fly and produce output to the kafka topic