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

推荐订阅源

Security Latest
Security Latest
Recorded Future
Recorded Future
人人都是产品经理
人人都是产品经理
S
SegmentFault 最新的问题
Hacker News - Newest:
Hacker News - Newest: "LLM"
C
CXSECURITY Database RSS Feed - CXSecurity.com
博客园 - 三生石上(FineUI控件)
博客园 - 聂微东
P
Privacy & Cybersecurity Law Blog
WordPress大学
WordPress大学
Know Your Adversary
Know Your Adversary
Spread Privacy
Spread Privacy
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
量子位
L
LINUX DO - 热门话题
L
Lohrmann on Cybersecurity
博客园 - Franky
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Tor Project blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
雷峰网
雷峰网
阮一峰的网络日志
阮一峰的网络日志
V
Visual Studio Blog
T
Threatpost
T
Tenable Blog
有赞技术团队
有赞技术团队
大猫的无限游戏
大猫的无限游戏
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI
C
Cisco Blogs
H
Heimdal Security Blog
Attack and Defense Labs
Attack and Defense Labs
A
About on SuperTechFans
Last Week in AI
Last Week in AI
N
News and Events Feed by Topic
T
Threat Research - Cisco Blogs
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
I
Intezer
V
V2EX
Cyberwarzone
Cyberwarzone
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
B
Blog RSS Feed
V
Vulnerabilities – Threatpost
N
Netflix TechBlog - Medium
T
The Blog of Author Tim Ferriss
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
U
Unit 42
PCI Perspectives
PCI Perspectives
P
Privacy International News Feed
D
Docker

博客园 - 小得盈满

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/