Distributed Key-Value Store System
A distributed key-value store system with load balancing, cluster management, and a modern web interface.
The system consists of three main components:
-
Controller (
/controller)- Cluster management dashboard
- Node health monitoring
- Partition management
- Leader election
- Real-time status updates
-
Load Balancer (
/load-balancer)- Round-robin load balancing
- Health check monitoring
- Dynamic node management
- Request forwarding
- Automatic failover
-
Client (
/client)- Modern web interface
- Key-value operations (Set, Get, Delete)
- Automatic retry mechanism
- Responsive design
┌─────────┐ ┌──────────────┐ ┌─────────────┐
│ Client │────▶│ Load Balancer│────▶│ Controller │
└─────────┘ └──────────────┘ └─────────────┘
│
▼
┌─────────────┐
│ Nodes │
└─────────────┘
- Go 1.16 or higher
- Modern web browser
-
Start the Controller:
cd controller go run main.goThe controller will be available at
http://localhost:8080 -
Start the Load Balancer:
cd load-balancer go run main.goThe load balancer will be available at
http://localhost:8081 -
Start the Client:
cd client go run main.goThe client interface will be available at
http://localhost:8082
- Cluster management dashboard
- Node health monitoring
- Partition management
- Leader election
- Real-time status updates
- Round-robin load balancing
- Health check monitoring
- Dynamic node management
- Request forwarding
- Automatic failover
- Modern web interface
- Key-value operations
- Automatic retry mechanism
- Responsive design
.
├── controller/ # Cluster management system
│ ├── main.go
│ ├── handlers/
│ ├── templates/
│ └── static/
├── load-balancer/ # Load balancing system
│ └── main.go
├── client/ # Client application
│ ├── main.go
│ ├── templates/
│ └── static/
└── README.md
- See
controller/README.mdfor detailed API documentation
- See
load-balancer/README.mdfor detailed API documentation
- See
client/README.mdfor detailed API documentation
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a new Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.