Giter Club home page Giter Club logo

apache-kafka-demo's Introduction

About

A demo showing basic of use Kafka in a Pub/Sub system. The producer receives messages via REST API call and writes them to a Kafka topic from which the consumer reads and buffers these messages before eventually writing them to an simple in-memory DB implemented using a list. The consumer displays every message written to the DB on a webpage.

Producer Rest API call

Consumer Display Messages

Both producer and consumer are Spring Boot applications but instead of using the official Spring for Apache Kafka library, the API provided by the Kafka Java clients library is used directly. For simplicity, the messages sent to the Kafka broker are in JSON format. Apache AVRO is a popular alternative.

Deploying Locally

Start up Zookeeper and Kafka instances using basic configuration(no need to create topics or partitions). Build executable JARs for both producer and consumer by using ./mvnw clean install -P{profile} at the root of the project . profile is the id of any Maven profile defined in $HOME/.m2/settings.xml which specifies at least the port on which both apps should be deployed e.g

 <profile>
   <id>kafka-demo</id>
   <properties>
	<consumer.port>8081</consumer.port>
	<producer.port>8087</producer.port>	
   </properties>	
 </profile>

The executable JARs can then be started either by running java -jar target/{name-of-JAR}.jar at the roots of kafka -producer and kafka-consumer or by building docker images using the Dockerfiles provided and starting containers.

Optionally, the Maven Spring Boot plugin can be used to start up both web app by using ./mvnw spring-boot:run -P {profile}

Tech

  • Java
  • Spring Boot
  • Apache Kafka
  • Thymeleaf & Bootstrap

apache-kafka-demo's People

Contributors

adeshinao avatar

Stargazers

 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.