部署指南
在实际实验环境中部署和运行 Quatm 框架的指南。
部署架构
Quatm 的通信基于 ZeroMQ,支持灵活的网络拓扑:
┌──────────────────┐ ZeroMQ ┌──────────────────┐
│ 控制端 (实验室) │ ◄──────────────────► │ 客户端 (办公) │
│ • 设备驱动 │ │ • GUI 浏览器 │
│ • 实验引擎 │ │ • 参数编辑器 │
│ • 数据采集 │ │ • 数据监视器 │
└──────────────────┘ └──────────────────┘
核心服务
| 服务 | 模块 | 功能 |
|---|---|---|
| 数据管理 | datamgr.DataSummary | 接收、存储实验数据为 HDF5 |
| 数据记录 | datalogger | 实时数据流记录 |
| 图像记录 | imagelogger | 图像数据存储 |
| 属性管理 | properties.Properties | 分布式属性同步 |
| 配置读取 | configreader | 路径和配置管理 |
| 消息转发 | xsub_xpub | ZeroMQ 消息代理 |
单机部署
所有组件在同一台计算机上运行:
git clone https://github.com/quatm/quatm.git
cd quatm
pip install -r requirements.txt
# 编辑 configuration/device_db.py
python -m quatm.GUI.browser
分离部署
控制端运行实验引擎,客户端远程连接:
# 控制端(实验室计算机)
python -m quatm.servers.experiment_server --port 7777
# 客户端(办公计算机)
python -m quatm.GUI.browser --connect 192.168.1.100:7777
系统服务(Linux)
[Unit]
Description=Quatm Experiment Server
After=network.target
[Service]
Type=simple
User=labuser
WorkingDirectory=/home/labuser/quatm
ExecStart=/home/labuser/.venv/bin/python -m quatm.servers.experiment_server
Restart=always
[Install]
WantedBy=multi-user.target
数据存储
- 本地:HDF5 格式,保存在
Data/年-月-日/目录 - 远程:支持 InfluxDB 推送(配置
properties.json)