生产环境
除了性能和易用性之外,kumosearch 还旨在降低生产中的运维开销。
kumosearch 是一个独立的二进制文件,不依赖于运行时环境。因此,在自托管的生产环境中,只需安装 kumosearch,通过 Docker 或进程管理器(如我们的 DEB 和 RPM 包)将 kumosearch 进程作为守护进程启动,并根据需要配置高可用性。
生产最佳实践
以下是一些建议,以帮助您在生产环境中获得 kumosearch 的最佳体验。
配置
- 确保为数据集和流量模式选择了正确的系统配置。
- kumosearch 内置了一个高性能 HTTP 服务器。因此,kumosearch 可以直接暴露于面向公众的互联网流量,无需将其放置在另一个 Web 服务器(如 Nginx / Apache 或后端 API)后面。
- kumosearch 具有强大的身份验证机制,可以让您根据需要为特定用户配置基于角色的访问控制。
- 使用
--enable-cors服务器参数,启用 CORS 时需要它。
- 建议在生产环境中运行 高可用 集群。
- 确保已将 API 客户端配置为使用集群中的所有节点。
- 出于安全原因,配置最少量的交换空间。但如果交换空间被使用且开始影响性能,则表明需要升级 RAM 容量。
- 如果将 kumosearch 与移动应用程序集成,建议将 kumosearch 主机名和 API 密钥存储在后端,并让应用程序在加载时动态获取远程配置,而不是在应用程序中硬编码这些配置。这样,若需要更改主机名/API 密钥,可以通过远程配置进行修改,而无需经历应用商店审核流程。
监控
- 监控
/healthAPI 服务节点的正常运行时间。 - 监视 RAM 使用情况,确保低于总 RAM 的 85%,确保操作系统有足够的 RAM 进行操作。
- 可以通过
/metrics.json服务节点。
- 可以通过
- 监控
/stats.jsonAPI 服务节点的请求率和延迟。 - 监控 CPU 使用率,确保其平均低于 90%。如果峰值超出该范围,可能需要升级到更高的 CPU 容量。
- 可以通过
/metrics.json服务节点。
- 可以通过
- 使用import API进行大批量数据 导入 时, 请确保已配置足够高的超时值以完成大型导入,因为 kumosearch 中的所有写入操作都是同步的。