Milvus
高性能、高可扩展的矢量数据库
安装次数
点赞
应用评论
催更次数
桌面端
移动端

应用描述
Milvus 是一款高性能、高可扩展的矢量数据库,可在从笔记本电脑到大型分布式系统的各种环境中高效运行。它既可以作为开源软件使用,也可以作为云服务使用。 Milvus 是 LF AI & Data Foundation 下的一个开源项目,采用 Apache 2.0 许可分发。大多数贡献者都是来自高性能计算 (HPC) 社区的专家,擅长构建大型系统和优化硬件感知代码。核心贡献者包括来自 Zilliz、ARM、NVIDIA、AMD、Intel、Meta、IBM、Salesforce、阿里巴巴和微软的专业人士。
相关攻略

懒猫微服开发篇(三):如何将已有 Docker Compose 应用移植到懒猫微服
# 懒猫微服开发篇(三):如何将已有 Docker Compose 应用移植到懒猫微服 > 本文延续前两篇,演示如何把一个已经在本地运行良好的 Docker Compose 应用打包并上架到懒猫微服应用商店。以 Milvus 为例,逐步拆解 Manifest 配置、路由映射、数据卷绑定以及镜像加速等关键环节,帮助大家快速完成移植。 ### 1. 目录结构与核心文件 在懒猫微服中,一个最小可用的应用包仅需两个文件: | 文件 | 作用 | | ------------------ | ------------------------------- | | `lzc-build.yml` | 描述打包流程及应用图标。简单应用只需指定 `icon` 即可。 | | `lzc-manifest.yml` | 定义应用元数据与服务编排,是移植的重点。 | 本文主要关注 `lzc-manifest.yml` 的编写。 ### 2. `lzc-manifest.yml` 字段逐一解析 现在有了懒猫应用查看器很方便,我们以商店里的 Milvus 的示例 Manifest为例,并附带注释说明。  这个 lzc-mainfest.yml 解析是重点。主要是subdomain,ingress,services 这几个字段。总体上还是延续了 Docker compose 的风格。 ```yaml lzc-sdk-version: '0.1' name: Milvus package: in.zhaoj.milvus version: 2.5.8 author: milvus application: # 子域名:应用上线后将访问 https://milvus.<机器名>.heiyu.space subdomain: milvus background_task: false # 是否允许后台运行 multi_instance: false # 是否允许多实例 gpu_accel: false # 是否请求 GPU routes: # 七层(HTTP)路由 - /=http://attu.in.zhaoj.milvus.lzcapp:3000/ ingress: # 四层(TCP)转发 - protocol: tcp port: 19530 service: standalone - protocol: tcp port: 9091 service: standalone services: # 以下基本等同于 docker‑compose 中的 services etcd: image: registry.lazycat.cloud/longixaoyi/milvusdb/etcd:v3.5.18 environment: - ETCD_AUTO_COMPACTION_MODE=revision - ETCD_AUTO_COMPACTION_RETENTION=1000 - ETCD_QUOTA_BACKEND_BYTES=4294967296 - ETCD_SNAPSHOT_COUNT=50000 command: > etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd binds: - /lzcapp/var/etcd:/etcd minio: image: registry.lazycat.cloud/longixaoyi/milvusdb/minio:RELEASE.2023-03-20T20-16-18Z environment: - MINIO_ACCESS_KEY=minioadmin - MINIO_SECRET_KEY=minioadmin command: minio server /minio_data binds: - /lzcapp/var/minio_data:/minio_data health_check: test: [ "CMD", "curl", "-f", "http://localhost:9000/minio/health/live" ] standalone: image: registry.lazycat.cloud/longixaoyi/milvusdb/milvus:v2.6.0-rc1 command: milvus run standalone environment: - ETCD_ENDPOINTS=etcd:2379 - MINIO_ADDRESS=minio:9000 depends_on: - etcd - minio binds: - /lzcapp/var/milvus:/var/lib/milvus attu: image: registry.lazycat.cloud/longixaoyi/zilliz/attu:latest environment: - MILVUS_URL=standalone:19530 depends_on: - standalone ``` #### 2.1 `subdomain` subdomain 是应用程序上线的域名,例如上述配置上线后即为 `https://milvus.<节点名>.heiyu.space`。 #### 2.2 `routes` route 来做七层的 HTTP 转发,类似 Nginx 的反向代理。规则格式为 `本地路径 = 目标 URL`。在示例中,根路径 `/` 被转发到前端服务 `attu` 的 3000 端口。 URL规则:服务名.包名.lzcapp:端口。(包名随意起) - /=http://attu.in.zhaoj.milvus.lzcapp:3000/ 这里attu是服务名,端口是 3000,in.zhaoj.milvus是包名。 #### 2.3 `ingress` 用于四层直通转发,适用于非 HTTP 协议(数据库、SSH 等)。示例将 Milvus 的 gRPC (19530) 与 HTTP (9091) 端口暴露给外部。 #### 2.4 `bind` Manifest 中的绑定路径以 `/lzcapp/var` 为前缀。发布后会被映射到宿主机的 `/data/app/var/<package>`,也算是为了简化程序移植和学习成本。和 Docker-compose 写绝对路径来说,这里的可移植性执行更好。 健康检查在这里不是必须的,因为打包的上架的时候服务会帮忙做这个事情。 ### 3. 服务映射与 `docker-compose.yml` 对照 懒猫 Manifest 的 `services` 段几乎一一复刻了传统 Compose 配置,常用键均保持一致。以下列出了 Milvus 官方 `docker-compose.yml`,方便对照理解: ```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.6.0-rc1 command: ["milvus", "run", "standalone"] security_opt: - seccomp:unconfined environment: ETCD_ENDPOINTS: etcd:2379 MINIO_ADDRESS: minio:9000 MQ_TYPE: woodpecker 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 ``` 差异点主要体现在: * 镜像源:建议通过 `lzc-cli appstore copy-image <image>` 把镜像同步到 `registry.lazycat.cloud`,解决国内网络拉取问题。 * 端口声明:在 Manifest 中,外部访问端口通过 `ingress`,不再使用 Compose 的 `ports`。 * 健康检查:懒猫平台会统一探测容器存活,可按需省略 `healthcheck`。 ### 4. 镜像加速实践 一条命令即可完成镜像复制并输出新的仓库地址: ```bash lzc-cli appstore copy-image nginx (base) 13:15:36 Waiting ... ( copy nginx to lazycat offical registry) uploading 23e05839: [####################################################################################################] 100% 23e05839: [####################################################################################################] 100% 23e05839: [####################################################################################################] 100% 3da95a90: [####################################################################################################] 100% 48670a58: [####################################################################################################] 100% 6c8e51cf: [####################################################################################################] 100% 9bbbd7ee: [####################################################################################################] 100% ce713206: [####################################################################################################] 100% ee95256d: [####################################################################################################] 100% uploaded: registry.lazycat.cloud/u04123229/library/nginx:d037205fbaf7d60a ``` 将生成的地址替换到 Manifest 的 `image` 字段即可。 ### 5. 小结 * Manifest 为核心:`lzc-manifest.yml` 描述了全部运行时需求,移植时优先完善此文件。 * 路由分层:`routes` 管理 HTTP,`ingress` 管理 TCP,二者配合即可覆盖绝大多数场景。 * 统一数据目录:使用 `/lzcapp/var` 避免硬编码路径,便于跨节点迁移。 * 镜像国内托管:通过 `lzc-cli appstore copy-image` 自动同步到 LazyCat Registry,稳定又快速。 至此,Milvus 的 Docker Compose 应用已成功移植到懒猫微服。更多进阶玩法,例如OIDC、VNC 集成等,我们将在后续文章继续分享。

本地无需搭建开发环境,微服全搞定
jupyter lab 用于数据科学相关的。默认密码:password https://appstore.lazycat.cloud/#/shop/detail/dev.beiyu.jupyterlab  Milvus 是最近很火的向量数据库。 https://appstore.lazycat.cloud/#/shop/detail/in.zhaoj.milvus  pip 安装一个包,换个源 马上就能用了。这个 Jupyter 还能常驻后台,随手用。 
懒猫评分/评论
0.0
0 条评论
新功能
版本历史记录"1. 版本号跟随milvus官方版本号\n2. milvus更新支持ipv6连接"
此 App 尚未收到足够的评分或评论,无法显示评论列表。