Giter Site home page Giter Site logo

kafka-flink-dev-stack's Introduction

kafka-flink-dev-stack

A mini kafka flink demo stack with avro as the serialization format based on https://github.com/garystafford/flink-kafka-demo/

Getting started with the dev stack

  1. Basic development env setup (Ubuntu guest os, docker engine, git, maven/gradle, ide, java, python3)
  2. Bring up the mini dev stack with docker-compose (the stack should work both in x86-64 and ARM64(apple silicon chip))

    docker-compose -f docker/flink-kafka-stack.yml up -d

  3. Run the python data generator script to simulate data ingestion

    cd streaming-data-generator/sales_generator python3 ./producer.py

  4. Build the Kafka-Flink-demo job with cradle to generate fat/uber jar to be deployed to the Flink cluster

    cd flink-kafka-demo ./gradlew clean shadowJar

  5. Deploy Flink jobs via shell scripts

    ./deploy.sh

  6. Submit flink jobs

    ./submit-join-streams-job.sh ./submit-running-totals-job.sh

Checking the running status

  1. Go to http://localhost:9080 to check the running status of the single-node kafka cluster
  2. Go to http://localhost:9081 to check the running status of the flink cluster

The architecture overview

The stack consists of a single-node Kafka cluster with KRaft(without ZooKeeper), a schema registry service instance, a Flink Job Manager instance, a Flink Task Manager instance, and a Kafka UI service mini-kafka-flink-stack

The serialization format used is β€˜AVRO’

The use case is to about joining two data streams by productId that come out of Kafka and sending the enriched messages to another Kafka topic

kafka-flink-dev-stack's People

Contributors

zjlhxq avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.