开源|ThingsBoard FAQ 使用和二次开发常见问题汇总一
最近遇到一些客户和合作伙伴提出来让我们总结一些 FAQ。

关注公众号

手动添加:thingsboard_cn

访问社区网站点击下方按钮

了解更多

不管是社区也好,群聊也罢,很多 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

开源|ThingsBoard 项目实施及二次开发要点总结
最近在实施 ThingsBoard 项目中遇到一些问题总结,还有针对 Thingsboard 二次开发中的提示。