1、课程导学与架构总览:ThingsBoard是什么、为什么需要集群、课程目标与前置知识

1.1 ThingsBoard到底是什么?

先聊聊ThingsBoard。说白了,它是一个开源的物联网平台,专门用来做设备数据采集、可视化展示和远程控制。我最早接触它是在2018年,当时一个智慧工厂项目需要管理上千台设备,客户要求实时看数据、还要能下发指令。嗯,那时候我试了好几个平台,最后选了ThingsBoard。

它的核心能力其实就三块:

  • 设备连接:支持MQTT、HTTP、CoAP等主流协议,设备接入很方便
  • 数据处理:规则引擎可以过滤、转换、转发数据,还能触发告警
  • 可视化:仪表板拖拽式配置,不用写代码就能做监控大屏

我记得当时有个同事问我:「这玩意儿跟阿里云IoT有啥区别?」我的回答是:ThingsBoard是开源的,你可以完全掌控数据,想怎么部署就怎么部署。对于企业来说,数据安全永远是第一位的。

1.2 为什么单机不够用?集群到底解决了什么?

你想想看,一个单机版的ThingsBoard能扛多少设备?我实测过,在8核16G的服务器上,大概能稳定处理5000台设备同时在线。但如果你的项目要接入5万台、10万台设备呢?单机肯定扛不住。

我在一个智慧城市项目中就踩过这个坑。一开始用单机部署,设备量到3000台时,CPU直接飙到90%,页面加载要等十几秒。客户当场就炸了。后来我连夜改成集群架构,才把问题解决。

集群主要解决三个痛点:

  • 高并发:多台机器分担设备连接和数据处理压力
  • 高可用:一台挂了,其他节点自动接管,业务不中断
  • 可扩展:设备量上来了,加机器就行,不用重构代码

核心结论:单机适合测试和小规模场景,生产环境必须上集群。这不是选择题,是必答题。

1.3 课程目标:学完你能做什么?

这门课的目标很明确——让你从零搭建一套生产级的ThingsBoard集群。具体来说:

  1. 理解架构:搞懂ThingsBoard的模块划分、数据流、消息队列的作用
  2. 动手部署:用Docker Compose和Kubernetes两种方式搭建集群
  3. 配置负载均衡:用Nginx或HAProxy做流量分发,保证请求均匀落到各节点
  4. 监控与运维:用Prometheus+Grafana监控集群状态,出了问题能快速定位

我个人习惯是「先理解原理,再动手操作」。所以每章我都会先讲清楚「为什么这么做」,然后再给具体的操作步骤。这样你遇到问题也能自己排查,而不是只会复制粘贴命令。

1.4 前置知识:你需要会什么?

这门课不是零基础入门,你需要有一些基本功:

技能 要求 说明
Linux基础 熟练 会操作文件、进程、网络配置,能看懂日志
Docker 掌握 会写Dockerfile、docker-compose.yml,理解容器网络
Kubernetes 了解 知道Pod、Service、Deployment的概念,会用kubectl
网络基础 了解 理解TCP/IP、DNS、负载均衡的基本原理

我的建议:如果你对Docker和K8s还不太熟,可以先花一周时间补一下。我在课程里也会穿插一些基础讲解,但不会从头教起。毕竟咱们的目标是「集群部署」,不是「容器入门」。

1.5 课程整体结构一览

这门课一共30章,我把它分成了五个阶段:

  • 第一阶段(第1-5章):架构认知与环境准备。搞懂ThingsBoard的模块划分,准备好部署环境。
  • 第二阶段(第6-12章):单机部署与核心配置。先跑通单机版,再理解配置项的含义。
  • 第三阶段(第13-20章):集群部署实战。用Docker Compose和K8s两种方式搭建集群。
  • 第四阶段(第21-26章):负载均衡与高可用。配置Nginx/HAProxy,实现故障转移。
  • 第五阶段(第27-30章):监控、运维与排坑。用Prometheus监控集群,分享我踩过的坑。

每个阶段我都会穿插实际项目中的案例。比如第8章我会讲「单机部署时最容易忽略的JVM参数调优」,第19章会讲「K8s部署时Pod频繁重启的排查思路」。这些都是我花过时间踩过的坑,你直接拿去用就行。

1.6 避坑指南:学习前先看这里

我曾经犯过的错

  • 第一次部署集群时,没注意消息队列的版本兼容性,结果Kafka和ThingsBoard版本不匹配,折腾了两天
  • 配置负载均衡时,忘了开启WebSocket的会话保持,导致设备连接频繁断开
  • 监控告警阈值设得太低,半夜被报警短信吵醒,结果只是正常流量波动

这些坑我都会在课程里详细讲,你跟着做就能避开。

好了,第一章就到这里。下一章我们开始搭建环境,先把Docker和K8s集群准备好。到时候我会手把手带你操作,保证不让你走弯路。

一句话总结:ThingsBoard集群部署不难,难的是理解架构和避开坑。这门课就是帮你「理解架构 + 避开坑」的。