1. 课程导论:ThingsBoard 平台概述、单机与集群架构对比、课程目标与前置知识

1.1 ThingsBoard 平台概述

ThingsBoard 是一个开源的企业级物联网平台,用于设备管理、数据采集、处理、可视化以及规则引擎编排。它采用微服务架构(部分组件可拆分),支持 MQTT、CoAP、HTTP 等主流协议,并提供可扩展的插件机制。平台核心组件包括:

  • Transport Layer(传输层):处理 MQTT、CoAP、HTTP 设备连接,支持 SSL/TLS 加密。
  • Core Service(核心服务):负责设备注册、属性管理、RPC 调用、用户与租户管理。
  • Rule Engine(规则引擎):基于节点链的流式处理引擎,支持数据过滤、转换、持久化、告警生成。
  • Web UI(用户界面):基于 Angular 的仪表板、设备管理、客户门户。
  • Database Layer(数据库层):支持 PostgreSQL / Cassandra + Redis + Kafka 的组合存储。
版本说明: 本课程基于 ThingsBoard 3.6.x 及以上版本,社区版(CE)与专业版(PE)在集群部署上核心差异在于消息队列和数据库选型,CE 默认使用本地队列 + PostgreSQL,PE 推荐 Kafka + Cassandra。

1.2 单机架构 vs 集群架构对比

单机部署适合开发测试、小规模生产(< 1000 设备);集群部署面向高可用、高吞吐、大规模设备接入(> 10 万设备)。以下从关键维度进行对比:

对比维度 单机架构 集群架构
组件部署 所有服务运行在同一 JVM 或同一主机 传输层、核心服务、规则引擎、UI 分别部署在多节点
高可用 无,单点故障即服务中断 多副本 + 负载均衡,单节点故障不影响整体
扩展性 垂直扩展(增加 CPU/内存),上限明显 水平扩展(增加节点),可支撑百万级设备
消息队列 内置本地队列(内存/H2) Kafka / RabbitMQ 作为分布式消息总线
数据库 PostgreSQL 单实例 Cassandra 集群 + PostgreSQL 主从 / Patroni
运维复杂度 低,单机 Docker 或包安装 高,需编排工具(K8s / Docker Swarm)
适用场景 开发、POC、小规模私有部署 生产环境、运营商级、边缘-云协同
架构选择黄金法则: 设备数 < 5000 且允许短时停机 → 单机;设备数 > 20000 或要求 99.9% 可用性 → 集群。中间范围可先单机后平滑迁移。
单机架构 vs 集群架构对比 单机架构 传输层 (MQTT/CoAP/HTTP) 核心服务 + 规则引擎 Web UI PostgreSQL (单实例) 集群架构 传输层 1 传输层 2 核心服务 1 核心服务 2 Web UI (负载均衡) Cassandra 1 Cassandra 2

1.3 课程目标

通过本课程,学员将掌握从单机到集群的完整部署技能,具体目标如下:

  1. 单机部署:使用 Docker Compose 在单台服务器上快速搭建 ThingsBoard CE/PE 环境,完成设备接入与基础配置。
  2. 集群架构设计:理解 ThingsBoard 各组件在集群中的角色、通信方式、数据流与故障转移机制。
  3. 数据库与消息队列:部署 Cassandra 集群、PostgreSQL 主从、Kafka 集群,并配置 ThingsBoard 连接。
  4. Kubernetes 编排:使用 Helm Chart 在 K8s 上部署 ThingsBoard 集群,配置 Ingress、PVC、HPA。
  5. 监控与运维:集成 Prometheus + Grafana 监控集群状态,配置日志聚合与告警。
  6. 性能调优:根据设备量级调整 JVM 参数、连接池、Kafka 分区、Cassandra 一致性级别。
重要提示: 本课程不涉及 ThingsBoard 功能开发或二次开发,专注部署运维。学员需具备 Linux 基础、Docker 基础、网络基础(TCP/IP、DNS、负载均衡概念)。

1.4 前置知识要求

为顺利学习本课程,建议学员提前掌握以下技能:

知识领域 具体要求 推荐学习资源
Linux 系统管理 文件操作、进程管理、systemd、网络配置、防火墙 《鸟哥的 Linux 私房菜》基础篇
Docker / Docker Compose 镜像拉取、容器运行、docker-compose.yml 编写 Docker 官方文档 Get Started
Kubernetes 基础 Pod、Service、Deployment、ConfigMap、Helm 概念 Kubernetes 官方教程
数据库基础 PostgreSQL 基本操作、Cassandra 数据模型、SQL 与 CQL PostgreSQL 官方文档、Cassandra 入门
消息队列 Kafka 主题、分区、消费者组概念 Kafka 官方文档 Quickstart
网络与安全 TCP/UDP 端口、SSL/TLS 证书、负载均衡(Nginx/HAProxy) 《HTTP 权威指南》相关章节
课程知识体系与前置依赖 前置知识层 Linux 基础 | Docker 基础 | K8s 概念 | 数据库基础 | 消息队列基础 | 网络基础 核心课程层 单机部署 → 集群架构设计 → 数据库/消息队列部署 → K8s 编排 → 监控运维 → 性能调优 目标产出层 生产级 ThingsBoard 集群 | 高可用架构 | 自动化运维 | 性能可扩展

1.5 课程环境与工具链

本课程所有实验均在以下环境中验证,建议学员准备相同或兼容的环境:

  • 操作系统:Ubuntu 22.04 LTS / CentOS 7.9+(生产推荐 Rocky Linux 9)
  • 容器运行时:Docker 24.0+ + Docker Compose v2
  • 编排平台:Kubernetes 1.28+(Minikube 或云厂商托管集群)
  • 数据库:PostgreSQL 15+、Cassandra 4.1+
  • 消息队列:Kafka 3.5+(KRaft 模式或 Zookeeper 模式)
  • 监控:Prometheus 2.45+、Grafana 10+
  • 负载均衡:Nginx 1.24+ 或 HAProxy 2.8+
实验建议: 如果本地资源有限,可使用云服务器(2C4G 起步)搭建单机环境,集群实验建议使用 3 台以上节点或 K8s 集群。本课程提供 Vagrantfile 一键创建实验虚拟机。