Giter VIP home page Giter VIP logo

sergio11 / iot_event_streaming_architecture Goto Github PK

View Code? Open in Web Editor NEW
18.0 3.0 16.0 28.02 MB

๐ŸŒ๐Ÿ“ˆ Unlock IoT potential with this Event Streaming Architecture: Apache Kafka and MQTT power real-time data handling. Visualize, analyze, and scale effortlessly. ๐Ÿš€๐Ÿ’ป๐Ÿ“Š

Home Page: https://medium.com/@sanchezsanchezsergio418/iot-event-streaming-architecture-fb790c634c2f

License: GNU General Public License v3.0

Dockerfile 2.18% Shell 11.14% Ruby 3.97% Java 82.71%
spring-boot mongodb docker docker-compose cadvisor-exporter node-exporter kafka zookeeper grafana prometheus

iot_event_streaming_architecture's Introduction

QuantumFlow IoT: Smart IoT Event Streaming. Scaling with Apache Kafka and MQTT ๐ŸŒ๐Ÿ“Š

Unlock the potential of the Internet of Things (IoT) with this cutting-edge Event Streaming Architecture. Leveraging the power of Apache Kafka and MQTT, this project is designed to handle IoT data at scale. ๐Ÿš€

Ingest real-time data from IoT sensors across diverse locations, analyze metrics like temperature, humidity, pressure, and luminosity, and store them efficiently in a high-performance MongoDB database. ๐ŸŒก๏ธ๐Ÿ’ง๐Ÿ“ˆ

The technology stack includes Spring Boot, Kafka Streams, Micrometer, and Grafana for real-time monitoring, making this architecture a powerhouse for IoT solutions. ๐Ÿ’ป๐Ÿ“ˆ๐Ÿ”

With Docker containerization, deployment is a breeze. Explore this project, visualize IoT data, and gain insights into your sensor networks. ๐Ÿณ๐Ÿš€๐Ÿ“Š

Check out the detailed Medium article for a comprehensive overview. ๐Ÿ“–

Thank you for visiting the Smart IoT Event Streaming GitHub repository! Empower your IoT endeavors and scale with confidence. ๐ŸŒ๐Ÿ“ˆ๐Ÿ’ก

Project developed to practice what I have learned in the Udemy course Apache Kafka Series - Kafka Connect Hands-on Learning and Apache Kafka Series - Kafka Streams for Data Processing.

Architecture Overview

The main goals of this architecture are the following:

  • Ingest and store real-time data from IoT sensors located in various locations.
  • Analyze and make aggregations through rotating time windows to know average temperature by sensor or place, in addition to humidity, pressure and luminosity.
  • Store data after processing for subsequent monitoring in a NOSQL database with good performance for frequent writes for relatively homogeneous document sizes such as MongoDB.
  • Visualization of the metrics of the sensors in real time and of the performance of the components of the architecture through Grafana and the consolidated documents in MongoDB through Mongo-Express.

Used technology

  • Spring Boot 2.3.3 / Apache Maven 3.6.3.
  • Spring Boot Starter Actuator.
  • Kafka Streams.
  • Spring Kafka.
  • Micrometer Registry Prometheus.
  • Eclipse Paho MQTT Client.
  • Kafka Connect.
  • Kafka Rest Proxy
  • lombok.
  • Jackson.
  • NodeExporter (Exporter for machine metrics).
  • Prometheus.
  • Grafana.
  • Eclipse Mosquitto.
  • MongoDB.
  • Mongo DB Express (Web-based MongoDB admin interface, written with Node.js and express).
  • Cadvisor (Analyzes resource usage and performance characteristics of running containers).
  • kafka-exporter (Kafka exporter for Prometheus).

Running Applications as Docker containers.

Rake Tasks

The available tasks are detailed below (rake --task)

Task Description
check_deployment_file_task Check Deployment File
check_docker_task Check Docker and Docker Compose Task
cleaning_environment_task Cleaning Evironment Task
deploy Deploys the IoT Event Streaming Architecture and laun...
login Authenticating with existing credentials
start Start Containers
status Status Containers
stop Stop Containers
undeploy UnDeploy IoT Event Streaming Architecture

To start the platform make sure you have Ruby installed, go to the root directory of the project and run the rake deploy task, this task will carry out a series of preliminary checks, discard images and volumes that are no longer necessary and also proceed to download all the images and the initialization of the containers.

Containers Ports

Container Port
kafka-topics-ui localhost:8081
kafka-connect-ui localhost:8082
zoonavigator-web localhost:8083
mongo-express localhost:8084
grafana localhost:8085
prometheus localhost:8086
kafka-rest-proxy localhost:9999

Some screenshots

Deploy with Docker Compose.

Viewing topics through Landoop Kafka Topics UI

Viewing Connect Topology through Landoop Kafka Connect UI

Viewing Zookeeper Nodes through ZooNavigator

Viewing information consolidated and processed in MongoDB through Mongo Express.

Viewing the metrics of the IoT sensors simulated on the platform.

Viewing metrics about Kafka's performance.

Viewing platform container metrics.

Visitors Count

Please Share & Star the repository to keep me motivated.

iot_event_streaming_architecture's People

Contributors

sergio11 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  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.