Chroma 服务模式是什么
Chroma 支持以服务方式运行:用容器或命令行启动后,客户端通过 HttpClient 连接,多个应用共享同一个实例。它适合多服务共用的开发环境与规模不大的线上场景——省去每个应用各自持有一份本地库的麻烦,也让数据集中一处、便于统一备份。代价是并发承载与鉴权能力取决于所用版本,对外暴露前必须确认该版本的安全配置,并优先放在内网。
基本信息
| 启动方式 | Docker 容器或命令行 |
|---|---|
| 客户端 | chromadb.HttpClient(host, port) |
| 默认端口 | 8000 |
| 健康检查 | /api/v2/heartbeat |
| 数据持久化 | 必须挂载数据卷 |
| 鉴权 | 随版本演进,需查对应版本文档 |
典型使用场景
- 多个应用共用一份向量数据,避免各存一份
- 开发环境集中管理,团队数据版本一致
- 小规模线上场景先用简单组件跑通链路
- 容器化部署,随编排统一管理生命周期
- 本地调试时模拟服务端行为,贴近线上形态
启动服务与连接
启动服务与连接
docker run -d --name chroma -p 8000:8000 \
-v $(pwd)/chroma_data:/data \ # 必须挂持久化卷,否则重启即丢
chromadb/chroma:latest
# 客户端连接:
# import chromadb
# client = chromadb.HttpClient(host="localhost", port=8000)
curl http://localhost:8000/api/v2/heartbeat # 健康检查部署要点读法
| 要点 | 说明 | 风险 |
|---|---|---|
| 数据卷 | 容器必须挂载持久化目录 | 未挂载时重启后集合与向量全部丢失 |
| 端口映射 | 默认 8000 映射到宿主机 | 直连公网且无鉴权时数据可被任意读写 |
| 健康检查 | heartbeat 端点 | 只探活不探数据,卷挂错仍显示健康 |
| 客户端初始化 | HttpClient 连接服务端 | 沿用本地文件模式的写法会连不上 |
服务模式的基础鉴权能力随版本演进:对外暴露前查阅对应版本的安全配置,必要时放在内网并叠加访问控制。
健康检查通过不等于数据正常:卷挂载错误或数据目录为空时服务依然健康,需要额外校验集合数量与向量条数。