部署编排已加入 TDengine(tdengine 3.3.6.13)与 tdengine-init 建库建表服务, 文档同步: - prerequisites:外部依赖章节把 TDengine 从「可选/需自行部署」改为「已内置」, 列出两个库的分片/保留/超级表,并说明与生产的版本差异 - troubleshooting:历史流量无数据一节改为常见原因表(init 未成功、库表缺失、地址错误), 给出对应的排查命令与处理方式
4.5 KiB
title, description, outline
| title | description | outline |
|---|---|---|
| 环境准备 | 部署 IotLCM 所需的硬件、系统、Docker 与网络条件 | deep |
环境准备
硬件要求
按数据规模选择:
| 场景 | CPU | 内存 | 磁盘 | 说明 |
|---|---|---|---|---|
| 试用 / 演示 | 2 核 | 4 GB | 40 GB | 少量卡片,建议停用定时同步任务 |
| 生产(中小规模) | 4 核 | 8 GB | 200 GB | 万级卡片,开启全量同步 |
| 生产(大规模) | 8 核+ | 16 GB+ | 500 GB+ | 十万级卡片,建议数据库独立部署 |
磁盘估算:MySQL 数据约 1~2 KB/张卡;日志随同步任务量增长,建议单独挂载并配置轮转。
生产 8 GB 场景的内存分配参考:
| 服务 | 占用 |
|---|---|
| MySQL | 1~2 GB |
| Redis | 200~500 MB |
| RabbitMQ | 300~500 MB |
| worker-svr | 500 MB~1 GB(与并发同步卡片数相关) |
| 其余业务服务 | 各 100~200 MB |
系统要求
| 项 | 要求 |
|---|---|
| 操作系统 | Linux x86_64(CentOS 7+ / Ubuntu 20.04+ / Debian 11+) |
| 内核 | 3.10 以上 |
| 文件系统 | ext4 / xfs |
| 时区 | 建议 Asia/Shanghai,与 docker-compose.yml 的 TZ 保持一致 |
Docker 要求
| 组件 | 最低版本 | 说明 |
|---|---|---|
| Docker Engine | 20.10 | 需支持 healthcheck 与 profiles |
| Docker Compose | v2.0(插件版) | 使用 docker compose 而非 docker-compose |
验证:
docker version
docker compose version
docker compose version 需 ≥ v2.0。若只有 docker-compose(v1),请升级到 Compose V2 插件。
镜像仓库
平台镜像发布在阿里云容器镜像服务,仓库类型为公开,无需登录即可拉取。
| 项 | 值 |
|---|---|
| 公网地址 | crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com |
| VPC 地址 | crpi-qflrqrxoohlkkvgc-vpc.cn-chengdu.personal.cr.aliyuncs.com |
| 命名空间 | iotlcm |
| 地域 | 西南1(成都) |
所有镜像都放在同一个镜像仓库 iotlcm/iotlcm 下,靠 tag 区分服务与版本:
crpi-.../iotlcm/iotlcm:mysql-8.0
crpi-.../iotlcm/iotlcm:redis-7.2
crpi-.../iotlcm/iotlcm:iotlcm-admin-svr-v1.0.4
crpi-.../iotlcm/iotlcm:iotlcm-openapi-v1.0.4
crpi-.../iotlcm/iotlcm:iotlcm-app-server-v1.0.2
tag 格式统一为 <服务名>-<版本>。
地址结构是 <Registry>/<命名空间>/<镜像仓库>:<tag>,即:
crpi-...cn-chengdu.personal.cr.aliyuncs.com / iotlcm / iotlcm : iotlcm-admin-svr-v1.0.4
↑ 命名空间 ↑ 镜像仓库 ↑ tag
docker-compose.yml 里的镜像地址已预置为上述公网地址,一般无需修改。
::: tip 基础组件也在同一仓库
MySQL、Redis、RabbitMQ、Consul、nginx 同样在这个仓库里(mysql-8.0、redis-7.2 等 tag),不从 Docker Hub 直连(公网不稳定且 tag 会漂)。版本已在编排文件中固定。
:::
::: tip 阿里云 VPC 地址 若部署在阿里云同地域 ECS 上,可把编排文件里的 Registry 前缀改为 VPC 地址,走内网流量、不消耗公网带宽:
image: 'crpi-qflrqrxoohlkkvgc-vpc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:mysql-8.0'
:::
网络与防火墙
仅需对外开放反向代理端口(默认 80 / 443),其余服务端口应限制为内网访问。
# 示例:firewalld 仅放行 80/443
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
::: tip 默认只监听本机
admin-svr、admin-ui、openapi、app-server、app-web、docs 默认绑定 127.0.0.1,只能本机访问。对外需通过反向代理,见可选服务。
:::
外部依赖(可选)
以下能力需要外部账号或服务,不影响平台主流程:
| 服务 | 用途 | 不配置的影响 |
|---|---|---|
| 短信服务商 | 发送验证码 | 无法发送短信 |
| 微信支付 | 在线支付 | 支付功能不可用 |
| 飞书 | 运维通知 | 不启动 bot 即可 |
::: tip 时序库已内置
流量历史使用的 TDengine 已包含在编排里,由 tdengine-init 服务在首次启动时自动建库建表,无需额外申请或配置:
| 库 | 分片 | 保留 | 超级表 |
|---|---|---|---|
iotlcm_daily |
7 天 | 3 年 | t_sim_card_usage_daily |
iotlcm_monthly |
30 天 | 3 年 | t_sim_card_usage_monthly |
编排使用的版本是 3.3.6.13(公开镜像可得),生产为 3.4.0.9。如需与生产完全一致,可自行构建镜像并替换 docker-compose.yml 中的 tag。
:::