ThingsBoard调试部署和性能分析

这篇具有很好参考价值的文章主要介绍了ThingsBoard调试部署和性能分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ThingsBoard调试部署和性能分析

(图片仅为示意)

开源大数据系统

物联网大数据系统正在工业、半工业以及其他互联网技术领域获得广泛应用,良好的物联网大数据系统是架构高效、安全、可靠信息化系统的“底座”之一。

为了快速获得物联网大数据平台能力,从业人员往往倾向于“向开源要生产力”,通过获得开源平台快速搭建自主的物联网大数据系统。在发展前期,这也不失为一种较为经济可行的解决方案。

常见的12个开源物联网系统对比:

ThingsBoard调试部署和性能分析

(来源:CSDN,https://blog.csdn.net/vividea/article/details/117999983)

ThingsBoard部署

如何利用开源项目快速搭建属于自己的物联网大数据系统?以下以最接近商业化应用形态的ThingsBoard为例,简要介绍系统的实战部署。

ThingsBoard简介

ThingsBoard 是一个基于Java的开源的物联网平台,用于数据收集、处理、可视化和设备管理。它使用物联网行业的标准协议(MQTT、CoAP和HTTP)实现设备连接,并支持云和本地部署。ThingsBoard 具有可扩展性、容错性和高性能,因此永远不会丢失数据。

Thingsboard 分为专业版和社区版,社区版是开源的,专业版是收费的。thingsboard 提供了30多个可自定义的小部件,允许为大多数物联网用例构建最终用户自定义仪表板。官网地址:thingsboard.io/。

ThingsBoard部署目标

部署目标:

(1)部署开源社区版ThingsBoard,具体版本为3.4.1(截至2022年11月最新版),包括数据库、后端、前端;

(2)对前端系统的Logo、企业信息等做修改、调试和部署,保证在前端页面显示上修改为所需的企业信息。

部署步骤

(1)直接安装部署社区版ThingsBoard v3.4.1

官网地址:http://www.ithingsboard.com/(推荐ThingsBoard中文网),依次点击“马上体验”、“Learn More”、“安装”、“社区版”,进入下载页面。

选择所需的操作系统,按照官网指导完成安装。对于初学者或轻量级用户,安装PostgreSQL版即可。但对于中大规模数并发、存储和访问需求的,仍然建议安装时序库并配置相应的消息机制。

ThingsBoard调试部署和性能分析

部署并启动完成后,访问http://localhost:8080即可进入ThingsBoard登录页面。ThingsBoard同时提供了Live Demo演示系统,用户也可以在自主部署之前,进入官方演示系统进行操作。

注意:postgressql安装时,选择Local时,建议选择“C”,不要默认。此外,pgSQL的版本不宜过高,要和ThingsBoard匹配。本文建议ThingsBoard 3.4.1安装postgreSQL 11.7。

ThingsBoard调试部署和性能分析

ThingsBoard前端调试

以上是基于官方已打包好的工程直接进行安装。在用户需要对前后端进行修改、重新部署时,用户可以从github下载源码并分别进行修改。

源码地址:https://github.com/thingsboard/thingsboard(注意:由于版本管理问题,官方提供的源码版本要仔细核对,避免版本错误)

ThingsBoard的源码是采用前后端分离开发方式的。虽然在工程打包时,可以将前后端系统整体打包、整体部署,但前后端系统也支持单独调试、单独部署。本文仅介绍ThingsBoard前端基本商务信息的修改、调试和部署方法。

ThingsBoard调试部署和性能分析

如上图所示,ui-ngx为系统前端代码,基于angular开发。

修改前端系统的前置条件:(1)安装vscode用于调试;(2)安装Angular、Node.js。一些有用的指令:

npm install -g @angular/cli

npm config set registry https://registry.npm.taobao.org(换源)

对前端系统进行调试的过程:

(1)VSCode调试前端

a)修改Title,地址:thingsboard/ui-ngx/src/index.html

b)修改APPTiTle,默认语言修改为“zh_CN”:

地址:thingsboard/ui-ngx/src/environments/environment.ts

地址:thingsboard/ui-ngx/src/environments/environment.prod.ts

c)制作ico小图标并替代

ico分辨率:32X32。可替换为公司Logo,用ps等工具导出、修改为ico文件。

路径:thingsboard/ui-ngx/src/thingsboard.ico

d)修改程序主色调

$tb-primary-color、$tb-secondary-color和$tb-hue3-color。地址:thingsboard/ui-ngx/src/theme.scss

e)修改Powered by信息

地址:

thingsboard/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-page.component.html

f)修改Logo

参照原Logo分辨率,修改Logo地址或原图替代,地址:

thingsboard/ui-ngx/src/app/shared/components/logo.component.ts

g)其他Logo

参照原Logo分辨率,修改Logo地址或原图替代,地址:

thingsboard/ui-ngx/src/app/modules/home/home.component.ts

h)屏蔽无用信息

地址:

thingsboard/ui-ngx/src/app/shared/components/help.component.html

修改完成后,二次部署过程:

a)修改端口号

不替代原安装系统(默认8080端口),换一个端口重新发布,比如在json文件里将发布端口改成9100。

b)npm或yarn启动

用powershell切换到ui-ngx目录后,执行:

yarn install

yarn start

其中,yarn install执行时间很长,耐心等待

yarn start编译也耗时较多,等待结束,提示成功后用浏览器访问http://localhost:9100(修改的端口)即可。

其他:

(1)如需要新增功能,可以直接对前端系统进行二次开发并统一纳入导航菜单;

(2)新增功能的后端接口,可以优先选择独立开发、部署和调用的方式。在对ThingsBoard的接口、数据体系完全熟悉之前,不建议直接修改源代码。

(3)待测试、验证稳定后,可考虑前后端统一调试、部署、升级。

ThingsBoard调试部署和性能分析

ThingsBoard数据模拟测试

准备工具:MQTT客户端模拟软件。本文采用MQTTfx 1.1.7版。该版本不需要License。

简要过程描述:

(1)进入TB并新建设备

设备-新建设备,名称和设备配置自定义命名,确定。

复制设备ID,将作为CLientID;复制访问令牌,将作为MQttfx的用户名。

(2)打开MQTT.fx并新建链接

Extras-edit connection...,打开后,新增一个thingsboard连接(名称随意),Client ID输入设备ID,username输入访问令牌,密码为空即可。

如果是本地,输入本地IP。如果是远程,输入thingsboard服务器的公网IP即可。

其他可不做修改。

(3)模拟写数

回到MQTT.fx主界面,选择thingsboard,点连接,成功后,后面会显示解锁和绿色圆圈。

可以直接在Publish页测试输入数据,json格式,比如{"key":"1"},执行后,在thingsboard对应设备的最新遥测数据就能看到数据。

如果需要按照固定时间等方式模拟写数,可以写js脚本。js脚本的路径默认为:C:\Users\Administrator\AppData\Local\MQTT-FX\scripts。

新建一个文本文件,写好后,后缀改为js。

一个典型的js脚本示例:

var Thread = Java.type("java.lang.Thread");

function execute(action) {

    var temp;

    var humid;   

    var power;   

    var apower;   

    var voltage;

    var current;      

    while (1==1) {

        temp =25 + random(1, 3);   

        humid = 60 + random(0, 10);  

        power = 102 + random(0, 10);  

        apower = 104 + random(0, 10);  

        voltage = 375 + random(0, 10);  

        current = 15 + random(0, 3);  

        publishTemp(temp, humid, power, apower, voltage, current);

        Thread.sleep(600000);

    }

    action.setExitCode(0);

    action.setResultText("done.");

    return action;

}

function publishTemp(temp, humid, power, apower, voltage, current) {

    var data = '{"Temperature":' + temp + ', "Humidity":' + humid+ ', "Power":' + power+ ',"Apparent Power":' + apower+ ',"HVoltage":' + voltage+ ',"Current":' + current+ '}';

    mqttManager.publish("v1/devices/me/telemetry", data);

}

function random(lower, upper) {

        return Math.floor(Math.random() * (upper - lower+1)) + lower;

}

function out(message){

              output.print(message);

}

(5)写数

如(4)所述,可以直接在Publish里写json格式数据,进行单次数据传输测试。

也可以选择Scripts标签项,下拉找到新建的js文件,点击execute即可。

(6)打开TB仪表板,按照操作说明建立仪表盘,此处操作不再一一说明。

最后形成的效果如下:

ThingsBoard调试部署和性能分析

ThingsBoard数据采集

准备工具和步骤:

(1)支持ThingsBoard的物理网关;

(2)传感器,如温湿度、压力等常用传感器,必要的Modbus调试设备、杜邦线、网线、4G通信卡等;

(3)按照设备操作说明测试端口、数据,并参照使用说明上云。

不同厂家设备的操作有所差异,本文不再详述。一个数据采集的实际案例效果:

ThingsBoard调试部署和性能分析

开源系统局限性

开源系统的典型特点:

(1)前期有优势,可以帮助用户快速、低成本地获取物联网服务,避免了大量的开发时间和开发成本;

(2)后期无优势,主要是二次开发成本、系统扩展性、场景业务适配性往往存在较大的局限性。

以ThingsBoard为例,从工业互联网的中大规模商业化应用的角度来看,开源系统的局限性主要在于:

(1)数据库和并发能力

以ThingsBoard为例,即使采用TimeScalesDB等时序库,其实时数据写入、压缩效率仍远不能达到商业化时序库、实时库的性能。如果需要满足大规模应用的要求,仍然需要进行大量的优化工作甚至是换库。

(2)工业化组态能力

在物联网系统标准化模块和配置之外,开源系统普遍缺乏中、重工业级Scada图形、数据组态能力,而二次开发并融合工业组态功能所需的工作量并不比重新开发系统代价小。

ThingsBoard调试部署和性能分析

(3)业务定制和适配

在面向差异化的业务应用场景时,标准化的物联网系统并不具备解决方案优势,主要体现在系统学习成本高、二次开发工作量大等问题。但开源系统的整体架构、数据处理等方面的技术仍可以为自主的高灵活性物联网大数据系统提供有益借鉴。

(4)灵活中台服务能力

开源物联网系统往往提供了云边协同、规则引擎等灵活化的数据计算、控制策略等管理和支持模块,但对于全面智慧化、AI化的业务应用场景来说,其AI中台化的支撑能力存在扩展不足、支撑不足以及配置繁琐等问题。对于开源物联网平台的中台化二次开发往往是一场灾难,或者说,开源系统并不一定具备AI中台的二次开发价值。

大数据+组态+AI中台方案

大数据+组态+AI中台方案

在面向半工业、开放型场景业务需求时,雒联信息(注册商标:LogisConn)提供“大数据+组态+AI中台”的上下一贯式的整体解决方案和产品技术支持。

相对于“大数据+组态”的方案,AI中台部分则进一步汇聚了能源、动力及相关场景下的专业化工艺模型、数据算法、工业控制等在内的专业知识和逻辑支持,实现了从业务表层到业务内在机理的渗透,并通过平台化的形式为用户提供易用、便捷、专业的总体业务支撑。

ThingsBoard调试部署和性能分析

系统应用

“大数据+组态+AI中台”解决方案正在重工业、城市和园区、建筑楼宇等场景获得应用。以能源、信息化、自控等领域专业团队为支撑,以自主研发、产学研、生态共建等模式为支撑,正在以“数据智能”融合“专业智能”的方式,为工业化、半工业、开放型场景的用户提供轻量化、易获取、低成本的高质量产品技术服务。

ThingsBoard调试部署和性能分析

ThingsBoard调试部署和性能分析

-- 普惠服务 智创未来--文章来源地址https://www.toymoban.com/news/detail-419117.html

到了这里,关于ThingsBoard调试部署和性能分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 1.UnityProfiler性能分析提升性能

    1.main thread 主线程 业务逻辑都在这里,我们调用Unity API都在这里;例如设置transform位置,main thread里面处理 2.render thread,渲染线程,负责渲染图像、执行渲染循环、处理GPU命令、帧同步。 3.  这个则表示当前负载最多可以绘制多少次(当前帧数) 4.Batches :批次,绘制场景,

    2024年01月25日
    浏览(58)
  • 【kafka性能测试脚本详解、性能测试、性能分析与性能调优】

    Apache Kafka 官方提供了两个客户端性能测试脚本,它们的存放位置如下: 生产者性能测试脚本:$KAFKA_HOME/bin/kafka-producer-perf-test.sh 消费者性能测试脚本:$KAFKA_HOME/bin/kafka-consumer-perf-test.sh kafka-producer-perf-test.sh 支持测试的性能指标包括:吞吐量(throughput)、最大时延(max-latenc

    2024年02月04日
    浏览(61)
  • 一文1800字解读性能指标与性能分析

    1、系统指标:与⽤户场景与需求直接相关的指标 2、服务器资源指标:硬件服务器的资源使⽤情况的指标 3、JAVA应⽤ : JAVA应⽤程序在运⾏时的各项指标 4、数据库:数据库服务器运⾏时需要监控的指标 5、压测机资源指标:测试机在模拟⽤户负载时的资源使⽤情况 ⼀般情况下,测试

    2024年02月08日
    浏览(56)
  • 辅助性能优化——长安链性能分析工具原理及用法

    如何提升区块链系统性能是很多开发者都会关注的事,但是有些对区块链并非十分熟悉的开发者可能会感到没有头绪。长安链提供了性能分析工具帮助开发者梳理系统耗时,优化系统性能。下面对长安链性能分析工具原理及使用进行介绍。 time_counter.sh是长安链性能分析工具,

    2024年02月13日
    浏览(54)
  • Linux性能瓶颈分析之TOP指标分析

    1.查看cpu基础信息 2.查看cpu详细信息 3.统计cpu信息 如图所示: us :表示 CPU 在用户态运行的时间百分比,通常用户态 CPU 高表示有应用程序比较繁忙。 sy :表示 CPU 在内核态运行的时间百分比,通常内核态 CPU 越低越好,否则表示系统存在某些瓶颈。 ni :表示用 nice 修正进程

    2024年02月11日
    浏览(69)
  • Mysql的SQL性能分析【借助EXPLAIN分析】

    要说sql有问题,需要拿出证据,因此需要性能分析 Mysql中有专门负责优化SELECT语句的优化器模块,主要功能:通过计算分析系统中收集到的统计信息,为客户端请求的Query提供他认为最优的执行计划(它认为最优的数据检索方式,不见得是DBA认为是最优的,这部分最耗费时间,

    2024年02月12日
    浏览(71)
  • ubuntu程序性能分析

    在Ubuntu上,可以使用一些工具来测量两段程序的计算量,如下所示: time命令:time命令可以用于测量程序的执行时间。在终端中运行以下命令来执行程序并测量其执行时间: 这将输出程序的执行时间,包括用户时间、系统时间和实际时间。 在运行的程序之前加 time 最后得出

    2024年01月16日
    浏览(57)
  • 排序算法性能分析

    目录 实现插入排序、冒泡排序、选择排序、合并排序、快速排序算法(从小到大) ①插入排序 ②冒泡排序 ③选择排序 ⑥快速排序 五种排序 现在有10亿的数据(每个数据四个字节),请快速挑选出最大的十个数,并在小规模数据上验证算法的正确性。 方法一:规模为10的插

    2024年02月13日
    浏览(51)
  • SQL性能分析-整理

    昨日对MySQL的索引整理了一份小文档,对结构/分类/语法等做了一个小总结,具体文章可点击:MySQL-索引回顾,索引知识固然很重要,但引入运用到实际工作中更重要。 参考之前的文章:SQL优化总结以及参考百度/CSDN/尚硅谷/黑马程序员/阿里云开发者社区,我个人把SQL性能分析

    2024年01月23日
    浏览(50)
  • 算法性能分析

          时间复杂度是一个函数,它定性描述该算法的运行时间。假设算法的问题规模为n,那么操作单元数量便用函数f(n)来表示,随着数据规模n的增大,算法执行时间的增长率和f(n)的增长率相同,这称作为算法的渐近时间复杂度,简称时间复杂度,记为 O(f(n)) 算法导论给出的

    2024年02月08日
    浏览(64)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包