Github 上最流行的开源物联网平台—ThingsBoard

这篇具有很好参考价值的文章主要介绍了Github 上最流行的开源物联网平台—ThingsBoard。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ThingsBoard 作为目前 Github 上最流行的开源物联网平台之一,可以实现物联网项目的快速开发、管理和扩展物联网项目, 是中小微企业物联网平台的不二之选。

一、特征

使用ThingsBoard,您可以:

  • 提供设备、资产和客户,并定义它们之间的关系。

  • 从设备和资产中收集并可视化数据。

  • 通过复杂的事件处理分析传入遥测和触发警报。

  • 使用远程过程调用(RPC)控制您的设备。

  • 基于设备生命周期事件、RESTAPI事件、RPC请求等构建工作流。

  • 设计动态和响应式仪表板,并向客户展示设备或资产遥测和见解。

  • 使用可自定义的规则链启用特定于用例的功能。

  • 将设备数据推送到其他系统。

  • 更多…

有关更多功能和特定功能文档的有用链接,请参阅ThingsBoard功能列表。

github物联网开源项目,物联网,物联网,Powered by 金山文档
github物联网开源项目,物联网,物联网,Powered by 金山文档
github物联网开源项目,物联网,物联网,Powered by 金山文档
github物联网开源项目,物联网,物联网,Powered by 金山文档
github物联网开源项目,物联网,物联网,Powered by 金山文档

ThingsBoard旨在:

  • 可扩展:使用领先的开源技术构建的水平可扩展平台。

  • 容错:没有单点故障,集群中的每个节点都是相同的。

  • 健壮且高效:根据使用情况,单个服务器节点可以处理数万甚至数十万个设备。ThingsBoard集群可以处理数百万台设备。

  • 可自定义:使用可自定义的小部件和规则引擎节点可以轻松添加新功能。

  • 持久:永远不要丢失数据。

二、ThingsBoard架构

1、ThingsBoard 传输

ThingsBoard提供基于MQTT,HTTP,CoAP和LwM2M的API,可用于您的设备应用程序/固件。 每个协议API都由单独的服务器组件提供,并且是ThingsBoard“传输层”的一部分。 MQTT 传输还提供网关 API,供代表多个连接设备和/或传感器的网关使用。

传输从设备接收到消息后,将对其进行解析并将其推送到持久消息队列。 只有在消息队列确认相应的消息后,才会向设备确认消息传递。

2、ThingsBoard核心

ThingsBoard Core 负责处理 REST API 调用和 WebSocket 订阅。 它还负责存储有关活动设备会话的最新信息并监视设备连接状态。 ThingsBoard Core在后台使用Actor系统来实现主要实体的Actor:租户和设备。 平台节点可以加入集群,其中每个节点负责传入消息的某些分区。

3、ThingsBoard规则引擎

ThingsBoard 规则引擎是系统的核心,负责处理传入的消息。 规则引擎在后台使用Actor系统来实现主要实体的Actor:规则链和规则节点。 规则引擎节点可以加入群集,其中每个节点负责传入邮件的某些分区。

规则引擎订阅来自队列的传入数据馈送,并仅在处理消息后确认消息。 有多种策略可用于控制消息处理的顺序或消息处理以及消息确认的条件。 有关更多详细信息,请参阅提交策略和处理策略。

ThingsBoard 规则引擎可以在两种模式下运行:共享模式和隔离模式。在共享模式下,规则引擎处理属于多个租户的消息。 在隔离模式下,规则引擎可以配置为仅处理特定租户的邮件。

4、ThingsBoard网页用户界面

ThingsBoard提供了一个使用Express.js框架编写的轻量级组件来托管静态Web UI内容。 这些组件是完全无状态的,没有太多可用的配置。 静态 Web UI 包含应用程序捆绑包。加载后,应用程序开始使用ThingsBoard Core提供的REST API和WebSockets API。

三、消息队列

ThingsBoard支持多种消息队列实现:Kafka,RabbitMQ,AWS SQS,Azure Service Bus和Google Pub/Sub。我们计划在未来扩展此列表。 使用持久且可扩展的队列允许 ThingsBoard 实现背压和负载平衡。在峰值负载的情况下,背压非常重要。我们在特定的队列实现上提供“抽象层”,并维护两个主要概念:主题和主题分区。 一个主题可能具有可配置的分区数。由于大多数队列实现不支持分区,因此我们使用主题 + “.” + 分区模式。

ThingsBoard 消息生产者根据实体 ID 的哈希确定要使用的分区。 因此,同一实体的所有消息始终被推送到同一分区。 ThingsBoard 消息 使用者使用 Zookeeper 进行协调,并使用一致哈希算法来确定每个使用者应订阅的分区列表。 在微服务模式下运行时,每个服务还具有基于只有一个分区的唯一服务 ID 的专用“通知”主题。

  • ThingsBoard使用以下主题:

  • tb_transport.api.requests:发送通用 API 调用以检查从传输到 ThingsBoard Core 的设备凭据。

  • tb_transport.api.responses:接收从 ThingsBoard Core 到 Transmission 的设备凭据验证结果。

  • tb_core:将消息从传输或规则引擎推送到 ThingsBoard 核心。消息包括会话生命周期事件、属性和 RPC 订阅等。

tb_rule_engine:将消息从传输或 ThingsBoard 核心推送到规则引擎。消息包括传入遥测、设备状态、实体生命周期事件等。

注意:所有主题属性(包括名称和分区数)都可以通过 thingsboard.yml 或环境变量进行配置。 从 ThingsBoard 3.4 开始,我们可以通过 UI 配置规则引擎队列,请参阅文档。

注意:从版本 2.5 开始,我们已经从使用 gRPC 切换到消息队列来处理 ThingsBoard 组件之间的所有通信。 主要思想是牺牲较小的性能/延迟损失,以支持持久可靠的消息传递和自动负载平衡。

四、内部部署与云部署

ThingsBoard支持本地和云部署。 ThingsBoard在全球运行着5000多台ThingsBoard服务器,在AWS,Azure,GCE和私有数据中心的生产环境中运行。 可以在完全无法访问互联网的专用网络中启动ThingsBoard。

五、独立模式与群集模式

平台设计为水平可扩展,并支持自动发现新的ThingsBoard服务器(节点)。 群集中的所有 ThingsBoard 节点都是相同的,并且共享负载。 由于所有节点都相同,因此没有“主”或“协调器”进程,并且没有单点故障。 您选择的负载均衡器可以将来自设备、应用程序和用户的请求转发到所有 ThingsBoard 节点。

六、整体式与微服务架构

从 ThingsBoard v2.2 开始,可以将平台作为整体应用程序或一组微服务运行。 支持这两个选项需要一些额外的编程工作,但是,由于与各种现有安装的向后兼容性,因此至关重要。

大约 80% 的平台安装仍在使用单片模式,因为支持工作、知识和硬件资源最少,用于进行设置和维护工作也很少。

但是,如果您确实需要高可用性或想要扩展到数百万台设备,那么微服务是一种选择。 还有一些挑战可以通过微服务架构解决,并适用于更复杂的部署和使用场景。 例如,运行需要更精细隔离的多租户部署,以防止:

  • 不可预测的负载峰值;

  • 不可预测的规则链配置错误;

  • 单个设备由于固件错误而打开 1000 个并发连接;

  • 和许多其他情况。

请点击下面列出的链接了解更多信息并选择正确的体系结构和部署选项:

  • 整体式:了解有关在单体模式下部署、配置和运行 ThingsBoard 平台的更多信息。

  • 微服务:了解有关在微服务模式下部署、配置和运行 ThingsBoard 平台的更多信息

七、SQL vs NoSQL vs 混合数据库方法

ThingsBoard使用数据库来存储实体(设备,资产,客户,仪表板等)和遥测数据(属性,时间序列传感器读数,统计信息,事件)。 平台目前支持三个数据库选项:

  • SQL - 将所有实体和遥测数据存储在 SQL 数据库中。ThingsBoard的作者建议使用PostgreSQL,这是ThingsBoard支持的主要SQL数据库。 可以将HSQLDB用于本地开发目的。我们不建议将 HSQLDB 用于除运行测试和启动具有最小可能负载的开发实例之外的任何操作。

  • NoSQL(已弃用) - 将所有实体和遥测数据存储在 NoSQL 数据库中。ThingsBoard的作者建议使用Cassandra,这是目前ThingsBoard支持的唯一NoSQL数据库。 请注意,此选项已被弃用,转而支持混合方法,因为 NoSQL 对事务和“联接”有许多限制,而这些限制是通过 IoT 实体启用高级搜索所必需的。

  • Hybrid (PostgreSQL + Cassandra) - 将所有实体存储在PostgreSQL数据库中,并将时间序列数据存储在Cassandra数据库中。

  • Hybrid (PostgreSQL + TimescaleDB) - 将所有实体存储在PostgreSQL数据库中,并将时间序列数据存储在Timescale数据库中。

可以使用 thingsboard.yml 文件配置此选项:

database:
  ts_max_intervals: "${DATABASE_TS_MAX_INTERVALS:700}" # Max number of DB queries generated by single API call to fetch telemetry records
  ts:
    type: "${DATABASE_TS_TYPE:sql}" # cassandra, sql, or timescale (for hybrid mode, DATABASE_TS_TYPE value should be cassandra, or timescale)
  ts_latest:
    type: "${DATABASE_TS_LATEST_TYPE:sql}" # cassandra, sql, or timescale (for hybrid mode, DATABASE_TS_TYPE value should be cassandra, or timescale)

大家好,我是Doker品牌的Sinbad,欢迎点赞和评论,您的鼓励是我们持续更新的动力!欢迎加微信进入技术群聊!文章来源地址https://www.toymoban.com/news/detail-575358.html

到了这里,关于Github 上最流行的开源物联网平台—ThingsBoard的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 或许有用的开源项目平台——物联网、区块链、商城、CMS、客服系统、低代码、可视化、ERP等

    Evernote Export wumei-smart-物美智能开源物联网平台 官网:https://wumei.live/ gitee:https://gitee.com/kerwincui/wumei-smart 一个简单易用的物联网平台。可用于搭建物联网平台以及二次开发和学习。适用于智能家居、智慧办公、智慧社区、农业监测、水利监测、工业控制等。 系统后端采用S

    2024年02月13日
    浏览(36)
  • GitHub上最火的SpringCloud微服务商城系统项目,附全套教程

    ├── mall-admin – 后台管理系统服务 ├── mall-search – 基于Elasticsearch的商品搜索系统服务 ├── mall-portal – 移动端商城系统服务 └── mall-demo – 微服务远程调用测试服务 项目地址及项目教程 ============= 转发+关注,然后私信回复 “源码” 即可获得《项目地址及

    2024年04月11日
    浏览(43)
  • Hadoop为什么如此流行——史上最详解

    作者:禅与计算机程序设计艺术 Hadoop是一个开源的分布式计算框架,其出现主要是为了解决海量数据的存储、计算、分析、和处理问题。随着互联网的数据量不断增加,分布式系统越来越普及,Hadoop也越来越受到青睐。它具备高容错性、高可靠性、弹性扩展等特性,能够适应

    2024年02月08日
    浏览(53)
  • 我把Github上最牛b的Java教程和实战项目整合成了一个PDF文档

    写在前面 大家都知道 Github 是一个程序员福地,这里有各种厉害的开源框架、软件或者教程。这些东西对于我们学习和进步有着莫大的进步,所以我有了这个将 Github 上非常棒的 Java 开源项目整理下来的想法。觉得不错的话,欢迎小伙伴们去star一波。 很多小伙伴都不知道学习

    2024年02月04日
    浏览(53)
  • 【开源物联网平台】FastBee物联网平台2.0开源版发布

    ​ ​ ​🌈 个人主页:帐篷Li 🔥 系列专栏:FastBee物联网开源项目 💪🏻 专注于简单,易用,可拓展,低成本商业化的AIOT物联网解决方案 一、项目介绍 物美智能(wumei-smart)更名为蜂信物联(FastBee)。 FastBee开源物联网平台,简单易用,更适合中小企业和个人学习使用。适用于

    2024年03月14日
    浏览(53)
  • 【开源物联网平台】物联网平台运营方能那些服务?

    随着物联网技术的快速发展,越来越多的企业开始认识到物联网对于提升业务效率和降低成本的重要性。为了满足不同企业和设备的需求,物联网平台运营方提供了一系列的服务,旨在帮助企业实现物联网应用的快速部署和高效运营。 物联网平台运营方通过整合国内外运营商

    2024年03月09日
    浏览(53)
  • FastBee 开源物联网平台

    ​FastBee开源物联网平台,简单易用,更适合中小企业和个人学习使用。适用于智能家居、智慧办公、智慧社区、农业监测、水利监测、工业控制等。 系统后端采用Spring boot;前端采用Vue;消息服务器采用EMQX;移动端支持微信小程序、安卓、苹果和H5采用Uniapp;数据库采用My

    2024年02月09日
    浏览(57)
  • 开源物联网平台推荐介绍

    RT-Thread RT-Thread是一个来自中国的开源物联网操作系统,它提供了非常强的可伸缩能力:从一个可以运行在ARM Cortex-M0芯片上的极小内核,到中等的ARM Cortex-M3/4/7系统,甚至是运行于MIPS32、ARM Cortex-A系列处理器上功能丰富系统。 Thingsboard Thingsboard是一个开源的物联网平台,由俄罗

    2024年02月04日
    浏览(44)
  • 常见开源物联网平台

    下面是我用过的 JetLink 重庆 ThingsPanel 国内 ThingsBoard 国外 iot-dc3 DC3 是基于 Spring Cloud 的开源可分布式物联网 (IOT) 平台,用于快速开发、部署物联设备接入项目,是一整套物联系统解决方案。IOT DC3 开源平台遵循 Apache 2.0 协议。 允许商业使用,但务必保留类作者、Copyright 信息。

    2024年02月16日
    浏览(44)
  • ThingsBoard开源物联网平台介绍

    视频教程:  ThingsBoard介绍_哔哩哔哩_bilibili ThingsBoard是一个基于Java的开源物联网平台,旨在实现物联网项目的快速开发、管理和扩展。本课程主要从0到1带你熟悉ThingsBoard,学习优秀的物联网变成思维与思想,主要有有一下几点:1、ThingsBoard相关介绍,以及为何在物联网平台

    2024年04月09日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包