暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

milvus的Standalone的极简部署

济南小老虎 2025-04-11
456

简介

milvus是比较广泛应用的向量数据库. 
大模型简介如下: 
Milvus 是一款高性能的开源向量数据库,
专为大规模向量相似性搜索而设计,适用于处理海量高维向量数据。
以下是关于 Milvus 的详细介绍:

核心功能
高效向量搜索:
Milvus 支持多种近似最近邻(ANN)搜索算法,
如 HNSW、IVF_FLAT、RNSG 等,
能够快速在数十亿甚至万亿规模的向量数据集中进行搜索。

多维度数据支持:
除了向量数据,Milvus 还支持与向量相关联的标量数据
(如整数、字符串、JSON 对象)的存储和查询。

灵活的部署选项:
Milvus Lite:
轻量级版本,适合在本地环境(如笔记本电脑)
中进行学习和原型开发。

Milvus Standalone:
单机部署版本,适用于测试和小规模生产环境。

Milvus Distributed:
分布式版本,可在 Kubernetes 集群中运行,
支持水平扩展,适合处理大规模数据。

Zilliz Cloud:
完全托管的 Milvus 服务,提供无服务器和专用集群选项。

多租户支持:
通过数据库、集合、分区或分区键级别的隔离,Milvus 
支持多租户,可灵活管理不同租户的访问权限。

冷热数据分离:
Milvus 支持将频繁访问的热数据存储在内存或 SSD 中,
而将较少访问的冷数据存储在成本较低的存储介质上,以降低成本。

稀疏向量支持:
除了密集向量,Milvus 还支持稀疏向量,
可用于全文搜索和混合搜索。

数据安全与细粒度访问控制:
提供角色基础的访问控制(RBAC),支持数据加密和审计日志。

架构
Milvus 采用分层、基于微服务的架构,分离存储和计算资源,
支持独立水平扩展。其架构包括:

接入层:
面向外部,接受用户和服务的输入并返回输出。

协调服务:
负责负载均衡、数据管理、查询执行等任务。

工作节点:
执行查询、更新数据和构建索引。

对象存储层:
包含元数据存储、记录实时数据变化的日志代理以及存储日志快照、
索引文件和中间计算结果的对象存储。

使用场景
Milvus 广泛应用于以下领域:
推荐系统:如电商和媒体流推荐。
多媒体相似性搜索:如图像、音频和视频的相似性搜索。
自然语言处理:如语义搜索。
药物研发:如分子结构的相似性搜索。
金融欺诈检测:如时间戳向量的相似性搜索。
Milvus 的高性能、可扩展性和丰富的功能使其成为处理大规模向量数据的理想选择


部署说明

这次是一个standalone版本的简单快速的部署
需要说明, 因为众所周知的原因
建议先科学的下载镜像, 执行导入后进行工作

这样能够很方便快捷.
自己验证了下 出去网络的时间
大概十五分钟能够理清楚加用户密码

用户密码很多资料不太对
他的文件其实在镜像内的:
/milvus/configs/milvus.yaml

容器内没有vim nano等但是有sed 可以简单处理.


yaml文件(官网上面有,直接用就可以,保存为 docker-compose.yaml 就可以了)

version: '3.5'

services:
  etcd:
    container_name: milvus-etcd
    image: quay.io/coreos/etcd:v3.5.18
    environment:
      - ETCD_AUTO_COMPACTION_MODE=revision
      - ETCD_AUTO_COMPACTION_RETENTION=1000
      - ETCD_QUOTA_BACKEND_BYTES=4294967296
      - ETCD_SNAPSHOT_COUNT=50000
    volumes:
      - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/etcd
    command: etcd -advertise-client-urls=http://etcd:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir etcd
    healthcheck:
      test: ["CMD""etcdctl""endpoint""health"]
      interval: 30s
      timeout: 20s
      retries: 3

  minio:
    container_name: milvus-minio
    image: minio/minio:RELEASE.2023-03-20T20-16-18Z
    environment:
      MINIO_ACCESS_KEY: minioadmin
      MINIO_SECRET_KEY: minioadmin
    ports:
      - "9001:9001"
      - "9000:9000"
    volumes:
      - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/minio_data
    command: minio server minio_data --console-address ":9001"
    healthcheck:
      test: ["CMD""curl""-f""http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

  standalone:
    container_name: milvus-standalone
    image: milvusdb/milvus:v2.5.8
    command: ["milvus""run""standalone"]
    security_opt:
    - seccomp:unconfined
    environment:
      ETCD_ENDPOINTS: etcd:2379
      MINIO_ADDRESS: minio:9000
      MILVUS_ROOT_PASSWORD: "YourPasword"
    volumes:
      - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus
    healthcheck:
      test: ["CMD""curl""-f""http://localhost:9091/healthz"]
      interval: 30s
      start_period: 90s
      timeout: 20s
      retries: 3
    ports:
      - "19530:19530"
      - "9091:9091"
    depends_on:
      - "etcd"
      - "minio"

networks:
  default:
    name: milvus


建议可以使用能连外网的机器下载

导入镜像后进行处理:
docker-compose  up -d

安装attu 
docker run -p 8000:3000 -e MILVUS_URL=yourip:19530 -d --name attu zilliz/attu

进入镜像内修改开启密码验证
docker exec -it milvus-standalone bash

sed -i 's/authorizationEnabled: false/authorizationEnabled: true/' /milvus/configs/milvus.yaml
不需要重启就可以直接生效.

打开 attu_server:8000 就可以 登录了.


文章转载自济南小老虎,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论