news 2026/6/1 22:17:28

使用 Nginx 实现对 Milvus 的负载均衡

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用 Nginx 实现对 Milvus 的负载均衡

转载原始文章出处:https://blog.csdn.net/weixin_44839084/article/details/116036244(如有侵权,请联系删除)

使用 Nginx 实现对 Milvus 的负载均衡

如今,互联网信息不断增加。为减小对服务器的压力,越来越多用户开始采用负载均衡机制以减小对服务器的压力。这种做法不但能够保证服务的可用性,还可以提升用户体验。本文将介绍如何通过使用 Nginx 实现对 Milvus 的负载均衡,从而提高服务器资源的使用效率和 Milvus 的可用性。

简介

1.1 Nginx

Nginx 是一款免费的开源、高性能 HTTP 服务器和反向代理服务器。Nginx 可以通过反向代理实现负载均衡的功能。该功能具备以下几个优点:

  • 转发功能:Nginx 会根据用户配置的策略将客户端请求转发到不同的服务器上, 减轻单台服务器压力,提高系统并发能力。

  • 故障转移:若配置的集群中有一台服务器出现了故障或者请求超时, Nginx 会将已经发送至该服务器的请求转发至另一台服务器。

  • 恢复添加:如检测到发生故障的服务器恢复工作,Nginx 自动将其添加到请求处 理队伍中。

1.2 Milvus

Milvus 是一款开源的分布式向量相似度搜索引擎。通过集成业界成熟的向量相似度搜索技术和大幅度优化高性能计算框架,Milvus 支持针对 TB 级向量的增删改操作和近实时查询,具有高度灵活、稳定可靠以及高速查询等特点。Milvus 集成了 Faiss、NMSLIB、Annoy 等广泛应用的向量索引库,提供了一整套简单直观的 API,用户可以针对不同场景选择不同的索引类型。

Milvus 适用于多种场景,与深度学习相融合的架构如下图所示:

采用 Milvus 的数据处理流程包括以下几个步骤:

  1. 与深度学习模型相结合,将非结构化数据转化为特征向量。

  2. 将特征向量存储到 Milvus 并建立索引。

  3. 返回向量相似性搜索结果。

实现方案

如下图所示,客户端将多个读请求发送给 Nginx。Nginx 根据在配置文件中设置的负载均衡策略,将请求按时间顺序逐一分配到不同的 Milvus 服务器中。Nginx 负载均衡策略还包含轮询方式、依据 ip 分配方式、权重方式等。用户可以根据实际场景选择相应的负载均衡策略。本教程采用轮询的策略。

2.1 安装 Nginx

1. Nginx 的安装包分为开发版、稳定版和过期版。本教程使用稳定版 Nginx 安装包。从 Nginx 官网下载安装包并解压。

2. 安装 C++ 依赖库、openssl 依赖库、pcre 依赖库和 zlib 依赖库。

3. 先配置 Nginx 的安装地址,将 Nginx 安装到指定路径下。

4. 编译 Nginx。

5. 安装 Nginx。

⚠️ 如果没有权限,需要切换到 Root 权限

6. 启动 Nginx。

7. 检查 Nginx 是否启动成功:如果 Nginx 进程启动则说明 Nginx 启动成功了。

2.2 配置 Milvus

本教程中使用 Milvus 的版本为 1.0,安装方式参考 Milvus 官网。安装时,将所有设备中数据存储的位置都设置为共享存储的路径,如下图所示。

Milvus 官网: https://milvus.io/cn/docs/milvus_docker-gpu.md

Milvus 默认使用 SQLite 作为元数据后台管理服务,但是在生产环境中,需要使用 MySQL 管理元数据。MySQL 安装完成后,在 Milvus 的配置文件server_config.yaml中修改参数meta_uri

MySQL 管理元数据: https://milvus.io/cn/docs/v1.0.0/data_manage.md

服务器 1 的 IP 地址为 192.168.1.85 ,服务器 2 的 IP 地址为 172.16.10.1。在服务器 1 上安装 Milvus1 和 Milvus3。Milvus1 设置为只读 IP 地址 192.168.1.85:19537,Milvus3 设置为只写 IP 地址 192.168.1.85:19539。服务器 2 安装 Milvus2,将其设置为只读 IP 地址 172.16.10.1:19538 。server_config.yaml配置文件中修改参数enablerole,如下图所示。

其中参数 enable 表示是否设置为分布式模式。参数 role 表示 Milvus 是只读还是只写。参数 meta_uri 应修改为安装 MySQL 的设备地址,其余配置参照 Milvus 单机版的配置。

2.3 配置 Nginx

完成 Milvus 配置后,根据 Nginx 的配置文件路径,修改配置文件 Nginx.conf。

在配置文件的末尾添加如下代码:对 Milvus1 和 Milvus2 两个读节点进行轮询。

stream{log_formatproxy'$remote_addr[$time_local] ''$protocol$status$bytes_sent$bytes_received''$session_time"$upstream_addr" ''"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';# 日志格式配置access_log /var/log/Nginx/access.logproxy ;open_log_file_cacheoff;#日志缓存设置,此处设置为禁用server{listen19585; #为监听的端口号不能和Milvus的端口号冲突proxy_passMilvus;}upstreamMilvus{server192.168.1.85:19537;#为Milvus1Ip地址server172.16.70.1:19538;#为Milvus2Ip地址}}

注:如果是 gRPC client 调用 Nginx 的接口需要在 Nginx.conf 配置文件的server 部分进行修改,详见 GitHub 项目修改 Nginx 配置文件后,测试是否配置正确。停止 Nginx 服务并重新启动。多次运行 GitHub 项目(https://github.com/milvus-io/bootcamp/blob/1.0/solutions/nginx/Readme.md)中提供的脚本进行测试,并查看 Nginx 的日志文件。

Ngnix 日志查询结果如下图所示。Nginx 将请求分别分发给 Milvus1 和 Milvus2 这两个读节点。

总结

本文主要介绍了如何通过使用 Nginx 实现对 Milvus 的负载均衡。负载均衡机制能够有效应对单台服务器出现故障的情况。而且负载均衡机制根据用户配置的策略将请求转发到不同的服务器上,减轻单台服务器的压力,提升用户的体验。希望本文对大家有所帮助,如果想要了解更多 Milvus 的教程和应用场景,可以关注我们的微信公众号或者加入微信群中,期待与你的进一步交流!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/1 22:16:55

Git小白入门教程

Git小白入门教程 ⭐️本篇blog 是b站 【【GeekHour】一小时Git教程】的学习记录笔记,感觉真的很不错~ 为了继续后一步的学习,我也记录一下~ 大家也可以去看看这个视频,很详细! ⭐️再推荐一个学习的实战(要有基础的&a…

作者头像 李华
网站建设 2026/6/1 22:16:43

基于PHP的抖音无水印视频解析技术实现与架构解析

基于PHP的抖音无水印视频解析技术实现与架构解析 【免费下载链接】kill-douyin-watermark-online 抖音视频无水印解析傻瓜式下载,仔细看源码可以集成到你自己的程序中。 项目地址: https://gitcode.com/gh_mirrors/ki/kill-douyin-watermark-online 抖音无水…

作者头像 李华
网站建设 2026/6/1 22:14:07

收藏!AI时代,这10类工作将越来越香,普通人如何避开内卷安稳立足?

文章指出,AI正逐渐取代简单重复性工作,如文案、数据录入、客服等,而需要人际交往、复杂问题解决、情感关怀和创新能力的工作将更加有价值。普通人应关注能“搞定人”的销售、能解决复杂问题的师傅、能照顾人情绪的服务者、能带团队的管理者以…

作者头像 李华
网站建设 2026/6/1 22:10:05

基于Arduino与树莓派的室内空气质量监测系统全栈开发指南

1. 项目概述:打造一个看得见的“空气管家”几年前,为了搞清楚家里书房在长时间工作后空气质量到底有多糟糕,我萌生了动手做一个监测设备的想法。市面上成品要么功能单一,要么数据封闭,无法满足我实时查看、历史回溯以及…

作者头像 李华
网站建设 2026/6/1 22:06:56

AI时代,文案人被“卷”到怀疑人生:我们还能干过AI吗?

文章讲述了AI时代下,职场人面临的巨大挑战。作者以自身经历为例,描述了作为文案策划,使用AI工具完成视频创作后的疲惫感。AI虽能提升效率,但人的创造性、逻辑性和情绪感知仍是AI无法替代的核心优势。文章呼吁职场人保持学习&#…

作者头像 李华