我们将 Qdrant 集成到 Zerops 的历程

2025-06-10

我们将 Qdrant 集成到 Zerops 的历程

矢量数据库正在彻底改变人工智能应用的数据管理和存储方式。在Zerops,我们意识到矢量数据库日益增长的重要性,因此集成了Qdrant,它是目前最受欢迎的方案之一。虽然使用 Docker 容器启动 Qdrant 实例看似简单,但管理一个可用于生产的矢量数据库实际上要复杂得多。在本文中,我们将探讨 Qdrant 实施的复杂性以及 Zerops 如何应对这些挑战。


了解 Qdrant 中的数据

在 Qdrant 中,数据被组织成集合,这些集合本质上是向量的集合。每个集合包含具有相同维度的向量,并使用特定指标进行比较。Qdrant 中的集合进一步划分为分片——独立的向量存储,可以处理集合提供的所有操作。

这种架构允许将工作负载分布在集群中的多个 Qdrant 节点上,从而提高性能和可靠性。为了确保高可用性 (HA),分片可以跨节点复制。理解这种结构对于掌握部署和管理的复杂性至关重要。


部署选项:平衡简单性和可靠性

在 Zerops,我们支持Qdrant 的HA非 HA模式,让您可以灵活地选择最适合您需求的配置。

非高可用性模式:非生产项目的简化

非高可用性模式非常适合数据持久性不重要的非生产项目。此设置仅需一个 Qdrant 节点,易于安装和管理。在 Zerops 中,以非高可用性模式部署 Qdrant 非常简单:

  1. 我们在 Ubuntu 容器中运行 Qdrant 二进制文件。
  2. 端口6333已开放,可供通信。

即使发生数据中断,我们的备份解决方案也能确保将干扰降至最低。

HA 集群:生产环境的可靠性

对于可靠性和数据可用性至关重要的生产环境,HA 集群模式至关重要。设置 HA 集群可能很复杂,但我们在 Zerops 中简化了该流程:

  • 集群配置:我们通过添加enabled: true到配置文件来启用集群模式并在端口上配置点对点通信6335
   cluster:
     enabled: true
     p2p:
       port: 6335
Enter fullscreen mode Exit fullscreen mode
  • 节点设置:构建集群需要仔细配置每个节点:

    • 第一个节点运行时带有一个--uri <uri>标志,以便让其他对等点知道如何联系。
    • node1.db.<service_name>.zerops我们在本地 DNS 中提供第一个对等点的地址。
    • 所有其他对等点都以该--bootstrap <cluster_uri>标志开始定位集群的其余部分。
  • 高可用性:Qdrant 使用RAFT协议,这需要超过 50% 的节点正常运行。为了满足此要求,我们自动为每个集群设置 3 个节点。

  • 自动复制:默认情况下,我们会自动在所有节点上创建任何集合的副本。这可以防止节点发生故障时数据丢失,并充当错误replication_factor配置的安全网。即使replication_factor用户配置错误,此方法也能确保数据安全。如果需要,可以通过将automaticClusterReplication参数设置为 来禁用此功能false

  • 故障恢复:如果一个节点发生故障,我们会自动启动一个新节点,将其连接到集群,并在新节点上创建每个集合和分片的副本。

  • 节点清理:我们利用 Qdrant API 识别当前集群 Leader 节点来简化此过程,然后有效地处理故障节点的删除。


克服技术挑战

在 Qdrant 与 Zerops 集成的过程中,我们遇到并解决了一些复杂的问题。幸运的是,Qdrant 通过其完善的RESTgRPC API 提供了强大的工具来监控和管理集群。

我们面临的一个问题是,当新节点添加到集群时,它似乎已完全正常运行,但却无法接收新的副本。这通常是由于节点之间持续的数据传输造成的,这可能需要相当长的时间。为了解决这个问题,Qdrant 提供了一个POST /cluster/recover端点,它可以在任何非领导节点上触发。该端点会向当前领导节点发送创建快照的请求。然后,领导节点会将此快照发送回请求节点以供应用。此快照会捕获集群在特定时间点的约定状态,从而允许集群恢复并同步。


数据备份:保护您的 Qdrant 数据

在 Zerops,我们通过提供以下服务优先保障您的数据安全:

  • 每日自动备份,无需额外费用
  • 以加密磁盘快照的形式备份每个集合
  • 安全上传到我们与 S3 兼容的备份存储
  • 每个堆栈最多保留 100 个备份,最长保留时间为一个月
  • 每个项目当前的最大存储大小为 25 GiB

您还可以灵活地选择不同的备份选项,包括一次性备份、可自定义频率的定期备份,甚至完全禁用备份。

我们的备份保留政策旨在提供全面的覆盖。例如,如果您每小时备份一次,则最多可保留 4 天的备份。这确保您在出现任何问题时都能访问数据的最新版本。


托管矢量数据库的价值

虽然您可以自行设置和管理 Qdrant,但正确操作需要大量的专业知识和资源。我们的托管 Qdrant 解决方案让您能够充分利用矢量数据库的强大功能,而无需承担复杂的操作。您可以专注于开发 AI 功能,而我们会确保您的矢量数据库以最佳状态运行,高度可用,并防止数据丢失。

在 Zerops 项目中运行的高可用性 Qdrant 服务

准备好驾驭矢量数据库的强大功能,摆脱运维难题了吗?不妨试试 Zerops

鏂囩珷鏉ユ簮锛�https://dev.to/zeropsio/our-journey-integrating-qdrant-in-zerops-4iea
PREV
自托管 PaaS 的兴起——您只需要 5 美元的 VPS 吗?
NEXT
人们使用 WebAssembly 构建什么?