ymlai87416 / system_design

Build a test environment for system design

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

A simple environment to test out system design concept

Story

A simple system to allow user to login and save some random message. A summary dashboard to show the total word count of all message.

Features

Todo list

  • Web API
  • Web
  • Zookeeper
  • Redis
  • Kafka
  • Minio
  • Spark
  • Notification and STOMP

Tech spec

Deployed following cluster on Kubernetes for fun.

Tech Spec Usage
Redis cluster of 3 by bitnami/redis-cluster As a cache cluster
Kafka cluster of 3 by bitnami/kafka As message queue
Minio cluster of 4 by minio/minio Store data for Spark to process.
Spark Use GoogleCloudPlatform/spark-on-k8s-operator Ask backend wordcount processing
Zookeeper cluster of 3 by bitnami/zookeeper Keep track of Kafka and spring boot discovery
MySQL A single host database As database

Related dockerhub repo

docker hub function
sd-read-api Read API
sd-write-api Write API
sd-main-api Main API
sd-wordcount-spark Spark job
sd-kafka-consumer Kafka consumer
sd-web Web

About

Build a test environment for system design


Languages

Language:Java 61.1%Language:Python 20.5%Language:JavaScript 11.3%Language:HTML 3.6%Language:CSS 2.1%Language:Dockerfile 1.4%