不管是社区也好,群聊也罢,很多 ThingsBoard 开发者都会遇到一些开发中的疑问,本博客将陆陆续续总结一些 FAQ 供大家参考。
关于 ThingsBoard 各种使用、开发、架构等问题,可以在本博客分类中找到:ThingsBoard 系列文章
ThingsBoard 是云原生吗?
- 如果仅仅是测试用户,那么这个问题跟你无关了,TB 本身支持单体部署,也可以说是 All-in-One 部署,很方便;
- Docker 容器部署,官方提供了多种应用环境下的
docker-compose
文件,开箱即用,为容器化部署实施提供了参考; - 微服务化、高可用、负载均衡,这些特性都是默认支持的;
Kubernetes
简称 k8s,在 TB 设计之初就是充分且完美支持,在具备 k8s 能力的情况下,可以尝试;
如果读者不需要微服务化应用环境,可以把 pom.xml 编译文件中的 sma 选项注释掉,加速编译。
<modules>
<module>netty-mqtt</module>
<module>common</module>
<module>rule-engine</module>
<module>dao</module>
<module>transport</module>
<module>ui-ngx</module>
<module>tools</module>
<module>application</module>
<!-- <module>msa</module> -->
<module>rest-client</module>
</modules>
ThingsBoard 可以作为物联网中台吗?
- 中台,有的人说中台已死,中台就是忽悠,等等,各种各样的说法,就看读者你自己怎么理解了;
- 从物联网的角度来说,TB 可以说是
IoT 数据中台
一点不为过,业务其具备了中台的某些特性; - TB 原生就是作为管理物
things
和看板board
来使用,跟业务无关; - 通用性强、扩展性强、结构简单、标准化,这些特性使得 TB 很多用户青睐有加;
ThingsBoard 多租户的实现方式是怎样的?
- 多租户应用,分为很多种不同的架构,本博客有几篇文章可以参考:SaaS应用程序需满足的7个条件,为什么用Docker作为多租户SOC的架构?;
- TB 默认支持多租户环境的
开箱即用
,你想不用都不行呢; - SysAdmin 超级用户,只能管理租户和系统配置,其他什么也做不了;
- TenantAdmin,租户管理员,是租户下的最大权限,当然,租户下的所有用户都是同级别权限;
- CustomerUser,客户用户,只能查看,不能修改;
- TB 使用的租户模式,在数据库层面上,关系型数据库 PostgreSQL 只是在
数据表字段上用 UUID 来区分
; - 租户可以使用
独立的微服务
来部署,提高系统资源的利用率; - TB 官方并没有将租户数据库独立开来的想法,如果读者有兴趣可以自己改造。
ThingsBoard 稳定可靠吗?
- 笔者所在的公司,已经使用 TB 多个版本进行了很多项目的实施,总体来说 TB 本身的稳定性可靠性非常不错,要知道一个系统的稳定可靠并不是软件本身能主宰的,也需要看运维和开发人员的经验和实力;
- 配备一定的服务器资源,网络资源,满足数据采集和分析的需求,TB 运行几年根本没有太多的运维管理工作;
- 服务器资源的安全性做好,没事不要瞎捣鼓,系统不是运行坏的,是瞎折腾坏的;
ThingsBoard 源码复杂吗?
笔者曾经写过相关源码分析的文章,读者可以参考:ThingsBoard 3.3 版本 OTA 源码分析,ThingsBoard 移动端源码分析,开源|ThingsBoard 项目实施及二次开发要点总结
- TB 源码复杂度,因人而异,不过 TB 几百万行源码,经过6年多的迭代,阅读还是需要花费很多时间的;
- TB 社区版本,代码都是开放的,在 github 仓库中,完全开源且免费;
ThingsBoard 后台开发难吗?
- TB 后端采用 Java 语言开发,完全使用 Spring Boot 架构;
- TB 后端自有一套完整的体系架构,模块清晰,结构复杂,都是没有代码注释,这个就需要开发者自己来分析和研究;
- ThingsBoard 功能扩展,二次开发,个性化,一起搞定!,可以参考这个文章来尝试自己扩展 TB 的功能模块;
ThingsBoard 前段开发难吗?
难,就一个字
;- TB 前段采用国内并不主流的 Angular 重型框架来开发,吃透其代码所花的时间可能比后端更多;
- 后端、前端,使用了
同一套数据结构
,先读后端,再来读前端,会更加合适;
ThingsBoard UI 为什么那么丑?
- 美与丑,仁者见仁智者见智;
- Angular 前端 UI 修改其实也不复杂,具备美工团队来支撑,读者应该可以做的
更好看
; - 可能 TB 自有的 UI 框架不是很符合国人的审美观,重新打造一套 UI 也是一个不错的选择;
ThingsBoard 能作为物联网平台来使用吗?
完全可以!
ThingsBoard 衍生品那么多,我该如何选择?
- 选择是读者的权利;
- 笔者建议,还是用 TB
官方原生
的来做更合适,毕竟物联网平台也只是一个支撑系统而已
; - 魔改也好,高度定制也行,笔者还是觉得读者应该自己试试到底是原生好还是衍生品棒;
ThingsBoard 对比其他开源物联网平台有何优势劣势?
- 开箱即用,这是笔者推荐 TB 的第一个原因;
- 架构简单,技术栈少:Java 和 Angular;
- 虽然官方有 PE 版本,但是笔者所在公司用
社区版本可以实现 PE 的绝大部分功能
,而且有些更加强大; - 说到底,其实 TB 并
不适合大型物联网项目
,这是 TB 架构所决定的; - 笔者极力推荐在小型物联网项目中使用 TB,项目周期可以大大缩短;
- TB 并
不能算是一个完美的物联网平台产品
,充其量就是一个设备管理平台
; - TB 的项目化难度对于非开发者,还是
有挑战难度的
,尤其是 Dashboard 和 规则引擎,需要有低代码开发的经验
;
ThingsBoard 开发注意事项是哪些?
- 试试就知道了,不要仅仅在网上找别人的文章,
拷贝粘贴不适合 TB 开发
; - 找个专业的团队来支撑,毕竟专业的人做专业的事更合适;
- 需要结合业务来开发,不要盲目的,不知所措的,仅仅搞开发,没有任何商业意义;
最后,来打个广告
!
关于 亿琪软件
上海亿琪软件有限公司成立于2016年,专注于 5G 通信、AI 人工智能、边缘计算和大数据网络安全多项技术领域,致力于物联网领域前沿技术的创新,为用户提供全方位、智能化和安全的物联网解决方案。
2023年,公司发布“YiFUSION|工业边缘智能融合一体机”产品,为工业客户提供一整套的边缘计算+AI能力:高性能数据采集、多类型数据融合、AI算法集成、云端业务对接。在边缘网关的基础上,集成了 IoT 平台的边缘协同能力、本地Web SCADA 和 HMI 功能、本地数据存储、边缘 AI 视频分析、行业应用集成等。
2022年公司推出 “YiCLOUD|亿琪云”一站式物联网应用解决方案。公司的业务涵盖了智慧城市、智慧农业、智能工厂和智慧园区等多个领域,公司软硬件产品和解决方案获得华为技术认证,得到中国移动OCP认证,公司还是边缘计算产业联盟ECC成员。
感知物联,畅快无限。
联系我们
网站:http://yiqisoft.cn
邮件:support@yiqisoft.cn
电话:021-68863086
手机:186-1666-9123