惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

W
WeLiveSecurity
博客园 - 【当耐特】
Microsoft Azure Blog
Microsoft Azure Blog
WordPress大学
WordPress大学
Stack Overflow Blog
Stack Overflow Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
IT之家
IT之家
Cloudbric
Cloudbric
The Register - Security
The Register - Security
小众软件
小众软件
PCI Perspectives
PCI Perspectives
G
Google Developers Blog
AI
AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Google DeepMind News
Google DeepMind News
Google DeepMind News
Google DeepMind News
宝玉的分享
宝玉的分享
Recent Commits to openclaw:main
Recent Commits to openclaw:main
量子位
TaoSecurity Blog
TaoSecurity Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
F
Full Disclosure
N
Netflix TechBlog - Medium
博客园_首页
Last Week in AI
Last Week in AI
A
Arctic Wolf
B
Blog RSS Feed
J
Java Code Geeks
C
Cybersecurity and Infrastructure Security Agency CISA
I
InfoQ
aimingoo的专栏
aimingoo的专栏
云风的 BLOG
云风的 BLOG
NISL@THU
NISL@THU
MyScale Blog
MyScale Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Jina AI
Jina AI
有赞技术团队
有赞技术团队
S
Schneier on Security
L
Lohrmann on Cybersecurity
P
Privacy & Cybersecurity Law Blog
T
Threat Research - Cisco Blogs
P
Palo Alto Networks Blog
S
Security @ Cisco Blogs
Security Archives - TechRepublic
Security Archives - TechRepublic
Security Latest
Security Latest
Vercel News
Vercel News
博客园 - 司徒正美
Webroot Blog
Webroot Blog
Hacker News: Ask HN
Hacker News: Ask HN
A
About on SuperTechFans

博客园 - 小得盈满

Hudi 时间旅行与增量查询的区别分析 NATS 的基本安装及使用 Doris 和 StarRocks 性能测试对比 ClickHouse 添加磁盘扩容存储 使用 Docker 部署 Elasticsearch 集群 ClickHouse UDF 的基本用法 StarRocks 容器镜像构建 Kafka 线上性能调优 StarRocks 集群安装 Kafka 的分片和副本机制 Flink 自定义 ClickHouse Table Connector 的简单实现 Redis 性能优化实战 记一次 Go 调用系统命令出现的问题分析 APISIX proxy-cache 插件用法 etcd 历史版本回溯的方法 APISIX 简单的自定义插件开发步骤 Kafka 集群副本数量调整 使用 Docker Compose 安装 APISIX etcd 集群安装 Consul 集群安装
Qdrant 单机和集群的安装方法
小得盈满 · 2025-07-14 · via 博客园 - 小得盈满

Qdrant 是一款比较新的大规模高性能向量搜索引擎,可以为 AI 应用提供底层支撑,目前已经有较为广泛的应用。

Qdrant 使用 Rust 编写,因此具备高性能和内存安全性的特点,同时采用独创的可过滤的 HNSW 索引,可以有效加速向量标量混合检索的性能,可以在性能和召回率方面有比较好地兼顾。

Qdrant 官网:https://qdrant.tech/

1. 单节点安装

推荐使用 Docker 方式安装 Qdrant,单节点的安装特别简单,我们首先拉取镜像:

docker pull qdrant/qdrant:v1.11.4

由于 Qdrant 更新比较快,所以当前使用的 v1.11.4 版本和最新的 v1.14.0(截止 20250714)有两个版本的差距,但是用法上应该是差不多的。

在运行之前我们需要准备配置文件,默认的配置文件可以从源码仓库中获取 https://github.com/qdrant/qdrant/blob/master/config/config.yaml

或者我们也可以复制配置文档页面的示例配置 https://qdrant.tech/documentation/guides/configuration/

这两种方法获取的配置基本上都是一样的,然后创建 Qdrant 的项目目录并将配置复制到项目目录下的 config/config.yaml 中,然后进行简单的修改。

为了基本的访问安全我们配置下 service 下的 api_key 以及 read_only_api_key

service:
  api_key: xxxxxxxx
  read_only_api_key: xxxxxxxx

其中 api_key 具备全部的管理权限,read_only_api_key 仅用于查询使用。

其他的暂时保持默认,我们在项目目录下创建 Docker Compose 配置文件:

services:
  qdrant:
    image: qdrant/qdrant:v1.11.4
    restart: always
    container_name: qdrant
    ports:
      - 6333:6333
      - 6334:6334
      - 6335:6335
    expose:
      - 6333
      - 6334
      - 6335
    configs:
      - source: qdrant_config
        target: /qdrant/config/production.yaml
    volumes:
      - /data/qdrant:/qdrant/storage

configs:
  qdrant_config:
    file: ./config/config.yaml

Qdrant 主要监听 3 个端口,其中 6333 是 HTTP 端口,6334 是 gRPC 端口,6335 是集群间通信的端口。

configs 中我们将外部的配置文件映射到了容器内部,并且使用 volumes 映射外部的数据目录。

最后我们启动 Qdrant 服务:

docker compose up -d

启动之后查看日志没有问题,我们就可以访问 http://<ip>:6333/dashboard 查看管理页面。

我们可以点击 Tutorial 中的栏目,快速进行一些简单的 Collection 创建、写入数据和查询等操作。点击 Collections 菜单我们可以看到创建的 Collection 以及详细信息。点击 Console 可以运行一些简单的查询等。

以上就是 Qdrant 单节点的基本安装过程。

2. 分布式部署

如果是要配置集群部署,那么则至少需要 3 个以上的节点组成集群,集群的一致性使用 Raft 协议实现。

假如我们现在有 3 个节点,IP 地址如下:

10.22.1.21 node1
10.22.1.22 node2
10.22.1.23 node3

我们稍微修改下配置,就可以启动一个集群了,修改如下:

cluster:
  enabled: true

开启集群的配置,然后每个节点都同步配置文件。

在第一个节点上,我们修改下 Docker Compose 配置文件如下:

services:
  qdrant:
    image: qdrant/qdrant:v1.11.4
    command: ./entrypoint.sh --uri 'http://10.22.1.21:6335'
# ...

其实就是添加 command 传进去了 --uri 参数,这个参数就是当前节点的 IP 和端口,表示其他节点用什么样的 URI 来连接当前节点。

然后第二个节点和第三个节点分别为:

# node2
services:
  qdrant:
    image: qdrant/qdrant:v1.11.4
    command: ./entrypoint.sh --uri 'http://10.22.1.22:6335' --bootstrap 'http://10.22.1.21:6335'
# ...

# node3
services:
  qdrant:
    image: qdrant/qdrant:v1.11.4
    command: ./entrypoint.sh --uri 'http://10.22.1.23:6335' --bootstrap 'http://10.22.1.21:6335'
# ...

后面两个节点除了 --uri 要指定之外,还要指定 --bootstrap 表示使用哪个节点来引导,从而建立通信。

正常启动之后第一个节点就作为 Leader,启动时 Leader 可能会在连接时报一行错误,这是由于端口还没有开启导致的,只要不一直报错就没有什么影响。

注意 --uri--bootstrap 要写 IP,因为我们使用的是容器网络,写主机名程序无法识别。

后面再次启动的时候,由于本地已经保存集群的状态,所以去掉后面的 --bootstrap 参数再启动也是没有问题的。

启动后可以查看集群的状态:

curl -H 'api-key: xxxxx' http://10.22.1.21:6333/cluster | python3 -m json.tool

可以看到节点列表以及当前节点的角色,如果其他节点有挂掉的并且被当前节点感知到,那么在 consensus_thread_status 中会有对应的报错信息。

参考链接:

  1. https://qdrant.tech/documentation/guides/installation/
  2. https://qdrant.tech/documentation/guides/security/
  3. https://qdrant.tech/documentation/guides/configuration/
  4. https://qdrant.tech/documentation/guides/distributed_deployment/