首页/AI/RAG 与向量库速查/Chroma 服务模式(HTTP)

Chroma 服务模式(HTTP)

Chroma 支持以服务方式运行:容器或命令行启动后,客户端用 HttpClient 连接,多应用共享同一实例;适合多服务共用的开发/小规模环境。

RAG 与向量库速查AI更新于 2026-10-13

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 连接服务端沿用本地文件模式的写法会连不上
服务模式的基础鉴权能力随版本演进:对外暴露前查阅对应版本的安全配置,必要时放在内网并叠加访问控制。
健康检查通过不等于数据正常:卷挂载错误或数据目录为空时服务依然健康,需要额外校验集合数量与向量条数。

易错点

  • 直接暴露公网且无鉴权:集合可被任意读写,数据泄露与投毒风险同时存在
  • 容器未挂载数据卷:重启或重建后集合与向量全部丢失,只能重新灌库
  • 多环境混用同一实例:测试数据污染生产集合,检索结果出现来历不明的内容
  • 客户端仍按本地文件模式初始化:连接失败或静默写入本地库,数据分散在两处

数据来源与参考

  • Chroma 官方文档(Running Chroma in Client-Server Mode)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌