Mohitkr95
qdrant-multi-node-cluster
Python

Scalable Qdrant vector database cluster with Docker Compose, monitoring, and comprehensive documentation for high-performance similarity search applications.

Last updated Jun 10, 2026
32
Stars
13
Forks
2
Issues
0
Stars/day
Attention Score
11
Language breakdown
Python 93.4%
Makefile 6.1%
Dockerfile 0.5%
โ–ธ Files click to expand
README

Qdrant Multi-Node Cluster

Qdrant Logo

Build & Docs Status Documentation License GitHub Release GitHub Issues Python Version GitHub Stars

Scalable vector database deployment for efficient similarity search across multiple nodes


๐Ÿ“– Overview

This project demonstrates a scalable, distributed deployment of Qdrant, a high-performance vector database. It showcases how to set up multiple Qdrant nodes in a clustered configuration, enabling efficient vector search operations with high availability and performance.

Qdrant is designed for enterprise-grade vector similarity search, supporting a wide range of use cases:

  • Semantic text search: Find documents with similar meaning, not just keywords
  • Image similarity: Locate visually similar images
  • Recommendation systems: Suggest products, content, or services
  • Anomaly detection: Identify outliers in vector spaces
  • Chatbot knowledge base: Power semantic retrieval for AI assistants

โœจ Key Features

  • ๐Ÿ”„ Scalable Multi-Node Architecture: Deploy 3+ Qdrant nodes that work as a unified cluster
  • ๐Ÿ“Š Dynamic Sharding: Distribute vector data across nodes with customizable sharding strategies
  • ๐Ÿ  High Availability: Built-in replication for fault tolerance and continuous operation
  • ๐Ÿ“ˆ Monitoring Stack: Integrated Prometheus and Grafana for real-time metrics visualization
  • ๐Ÿ Python Client Integration: Comprehensive demo application showing cluster interaction
  • ๐Ÿณ Docker-Based Deployment: Simple setup using Docker Compose
  • ๐Ÿ”ง Detailed Configuration: Extensive options for tuning and optimizing performance

๐Ÿš€ Quick Start

Prerequisites

  • Docker and Docker Compose
  • Python 3.8+
  • Git

Installation

# Clone the repository
git clone https://github.com/Mohitkr95/qdrant-multi-node-cluster.git
cd qdrant-multi-node-cluster

Install the package and dependencies

pip install -e .

Deploy the Cluster

# Start the Qdrant cluster with Prometheus and Grafana
cd deployments/docker
docker-compose up -d

Run the Demo

# Run the demonstration
python src/run_demo.py

Or with custom parameters

python src/run_demo.py --host localhost --port 6333 --points 2000

Access Services

๐Ÿ“‹ Documentation

Comprehensive documentation is available in the docs directory:

๐Ÿ› ๏ธ Project Structure

qdrant-multi-node-cluster/
โ”œโ”€โ”€ config/                    # Configuration files
โ”‚   โ”œโ”€โ”€ grafana.json           # Grafana dashboard configuration
โ”‚   โ””โ”€โ”€ prometheus.yml         # Prometheus configuration
โ”œโ”€โ”€ deployments/               # Deployment files
โ”‚   โ””โ”€โ”€ docker/                # Docker-related files
โ”‚       โ””โ”€โ”€ docker-compose.yml # Docker Compose configuration
โ”œโ”€โ”€ docs/                      # Documentation
โ”‚   โ”œโ”€โ”€ api/                   # API documentation
โ”‚   โ”œโ”€โ”€ guides/                # User guides
โ”‚   โ””โ”€โ”€ images/                # Documentation images
โ”œโ”€โ”€ src/                       # Source code
โ”‚   โ”œโ”€โ”€ qdrant_demo/           # Main package
โ”‚   โ”‚   โ”œโ”€โ”€ config/            # Configuration settings
โ”‚   โ”‚   โ”œโ”€โ”€ core/              # Core functionality
โ”‚   โ”‚   โ””โ”€โ”€ utils/             # Utility functions
โ”‚   โ””โ”€โ”€ run_demo.py            # Main entry point
โ”œโ”€โ”€ tests/                     # Test files
โ”œโ”€โ”€ LICENSE                    # MIT License
โ”œโ”€โ”€ Makefile                   # Development commands
โ”œโ”€โ”€ README.md                  # Project overview
โ”œโ”€โ”€ requirements.txt           # Python dependencies
โ””โ”€โ”€ setup.py                   # Package setup file

๐Ÿ“Š Monitoring and Visualization

This project integrates Prometheus for metrics collection and Grafana for visualization, providing real-time insights into your Qdrant cluster's performance.

Grafana Dashboard

๐Ÿ” Advanced Configuration

Sharding Configuration

Customize sharding to distribute data efficiently:

# In settings.py
SHARD_NUMBER = 4  # Default shard count

Vector Parameters

Configure vector dimensions and distance metrics:

# In cluster_demo.py
client.create_collection(
    collectionname=self.collectionname,
    vectors_config=models.VectorParams(
        size=self.vector_size,  # 768 by default 
        distance=models.Distance.COSINE
    ),
    # ...other parameters
)

Adding More Nodes

Extend the cluster by adding more nodes in docker-compose.yml:

qdrant_node4:
  image: qdrant/qdrant:v1.6.1
  volumes:
    - ./data/node4:/qdrant/storage
  depends_on:
    - qdrant_node1
  environment:
    QDRANTCLUSTERENABLED: "true"
  command: "./qdrant --bootstrap http://qdrantnode1:6335 --uri http://qdrantnode4:6335"

๐Ÿงช Testing

Run the test suite:

# Run all tests
make test

Or directly with Python

python -m unittest discover -s tests

๐Ÿค Contributing

Contributions are welcome! See our Contributing Guide for details on how to get started.

  • Fork the repository
  • Create a feature branch (git checkout -b feature/amazing-feature)
  • Commit your changes (git commit -m 'Add amazing feature')
  • Push to the branch (git push origin feature/amazing-feature)
  • Open a Pull Request

๐Ÿ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ‘ Acknowledgments

๐Ÿ“ง Contact

Mohit Kumar - @Mohitkr95

Project Link: https://github.com/Mohitkr95/qdrant-multi-node-cluster

๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท Mohitkr95/qdrant-multi-node-cluster ยท Updated daily from GitHub