Skip to main content

部署模式

作为一个应用程序,Quickwit 由多个服务组成,并设计为可水平扩展的分布式系统。目前,Quickwit 支持四个核心服务indexer(索引器)、searcher(搜索器)、metastore(元存储)、control plane(控制面) 和一个维护服务 janitor(清洁工):

  • 索引器从数据源中获取文档并构建索引。
  • 搜索器执行通过 REST API 提交的搜索查询。
  • 元存储在兼容 PostgreSQL 的数据库或云端托管文件中存储索引元数据。
  • 控制面在索引器上分配和协调索引工作负载。
  • 清洁工执行定期维护任务。

Quickwit 作为单一的二进制文件或 Docker 镜像分发。该可执行文件或镜像的行为通过 quickwit run 命令的 --service 选项进行控制,并定义了节点上运行哪些服务。您可以启动一个服务、多个服务或所有服务。节点始终提供 REST API 和搜索及管理 UI。此外,它们会将无法满足的请求重定向到集群中的适当节点。最后,每个服务可以根据系统预期负载在一个或几个节点上运行。

单机模式(单节点)

这种部署模式是开始使用 Quickwit 的最简单方式。使用 quickwit run 命令 启动所有服务,现在您就可以导入数据并搜索您的索引了。

集群模式(多节点)

您可以在多个节点上部署 Quickwit。我们提供了一个 Helm chart 来帮助您在 Kubernetes 上部署 Quickwit。在集群模式下,您必须将索引数据存储在共享存储后端(如 Amazon S3 或 MinIO)上。

一个索引器,多个搜索器

一个运行在小型实例(4 vCPU)上的索引器可以以每秒 20-40MB(每天 1-3+ TB)的吞吐量导入文档。因此,部署一个索引器是一个很好的起点。然而,处理大型数据集或服务大量资源密集型请求(如聚合查询)可能需要多个搜索器。

多个索引器,多个搜索器

在多个索引器上对单个 数据源 进行索引目前仅支持使用 Kafka 数据源。原生分布式索引的支持计划在 Quickwit 0.8 版本(第二季度)中实现。敬请期待!

文件支持的元存储限制

文件支持的元存储适用于单机和小型部署。但是,它不支持同时运行多个实例。只要能保证任何时候最多只有一个元存储在运行,那么文件支持的元存储就是安全的。对于繁重的工作负载,我们建议使用 PostgreSQL 元存储。