- 博客(46)
- 收藏
- 关注
原创 ThingsBoard3.9.1 MQTT Topic(3)
字段说明:requestId表示整数的请求流水号,每请求一次+1。说明:设备直连时,查询设备属性后,接收响应的主题。描述:查询设备本身的客户端属性和共享属性。说明:设备直连时,查询设备属性的主题。下列主题用于设备直连平台的场景。client表示客户端属性,描述:查询设备自己的属性。shared表示共享属性。
2025-04-19 11:03:55
53
原创 ThingsBoard3.9.1 MQTT Topic(2)
3.设备直连时,上报给平台的RPC响应,Topic: v1/devices/me/rpc/response/{requestId}2.设备直连时,接受平台下发的指令,Topic: v1/devices/me/rpc/request/+1.网关上报子设备属性的topic:v1/gateway/attributes。说明:json格式,device是网关子设备的名称。
2025-04-17 22:24:00
220
原创 ThingsBoard3.9.1 MQTT Topic(1)
3.设备直连时,上报自身的属性数据,Topic: v1/devices/me/attributes。2.设备直连时,上报自身的遥测数据,Topic:v1/devices/me/telemetry。1.网关转发子设备的遥测信息, Topic:v1/gateway/telemetry。描述:只能上报设备自己的数据。内容是key:value格式的数据。描述:只能上报设备自己的属性。说明:json格式,key是网关子设备的名称。说明:设备直连时,上报遥测数据的主题。说明:设备直连时,上报设备属性的主题。
2025-04-12 22:54:58
303
原创 thingsboard3.9.1编译问题处理
处理方法:手工下载gradle-7.3.3-bin.zip,然后再编译时拷贝到 C:\Users\{系统用户}\.gradle\wrapper\dists\gradle-7.3.3-bin\{随机值} 目录。处理方法:在https://github.com/vercel/pkg-fetch/releases页面下载对应的文件,然后改名放置到C:\Users\Administrator\.pkg-cache\v3.4目录中。处理方法:在pom.xml中,注释插件。处理方法:关掉IDEA,多试几次即可。
2025-04-12 22:46:28
306
原创 thingsboard源码:TbActorMailbox的processMailbox方法处理TbActorMsg消息
基于thingsboard V3.6.4整理。
2025-03-23 10:15:00
89
原创 Vert.x初探
Eclipse Vert.x是一个用于在JVM上构建主动应用程序的工具包。随着工作量的增加,主动应用程序都是可扩展的,当出现故障时也会恢复。主动应用程序具有响应性,因为它通过有效使用系统资源和保护自身免受错误的影响来控制系统。Vert.x由一个庞大的生态系统支持,其中包含编写现代服务时所需的任何东西:一个复杂的网络堆栈、实时数据库驱动器、消息、事件流、摘要、矩阵、争议追踪等。这个框架在国外流行度很高,支持mqtt,http,websocket等多种应用。这里是一个MQTT客户端的例子。
2024-09-17 22:07:32
369
原创 ThingBoard规则链中的消息处理
规则链的实现参考AKKA模型。系统从主题tb_rule_engine.main消费到数据节后,通过Actor进行消息的流转和处理。基于ThingsBoard V3.6.4版本整理。
2024-04-15 16:31:11
305
原创 ThingsBoard3.6.3设备属性之服务端属性
在服务端,默认设备10分钟没有上报数据则会话超时,设备离线,无论设备是否上报DisConnect事件。在2.5.4版本中,采用UDP协议时,可能会出现设备频繁的上线、下线问题。服务端属性用于记录设备的在线/离线状态,和连接、活跃、断开连接的时间。
2024-04-02 14:04:06
440
原创 ThingsBoard3.6.3 OTA升级功能研究
注意:官方说明中未指明paho-mqtt版本,实测使用高版本会出现不兼容的问题。OTA升级是ThingsBoard3.3版本新增的功能。之前,升级功能只能进行定制开发。则会下载升级包到当前目录。1.在OTA升级页面,点击“添加包”按钮,输入标题、版本、设备配置等字段,上传升级包;2.可以在设备页面的详情中,选择或查看升级包;4.下载脚本mqtt_firmware_client.py;这里以MQTT为例进行示例。3.下载脚本,和脚本依赖;
2024-04-01 13:29:09
645
原创 华为云上的一次kafka集群故障处理
问题现象: 生产者的日志中大量的超时 2022-02-17 09:29:41,692 [kafka-producer-network-thread | monolith-rule-engine-xm2m-IOT-0003] WARN o.t.s.q.k.TbKafkaProducerTemplate - Producer template failure: Expiring 2 record(s) for tb_rule_engine.main.0-0:120000 ms has pa...
2022-02-17 11:12:43
4319
原创 ThingsBoard MQTT API 参考
阅读笔记,原文地址:MQTT | ThingsBoard中文网MQTT是一种轻量级的发布-订阅消息传递协议,它可能最适合各种物联网设备。ThingsBoard服务器支持QoS级别0(最多一次)和QoS级别1(至少一次)以及一组预定义主题的MQTT代理。ThingsBoard支持以JSON格式的key-value字符串,值可以是string、bool、float、long或者二进制格式的序列化字符串.使用令牌凭据对进行设备访问,这些凭证稍后将称为$ACCESS_TOKEN应用程序需要发送用户名
2021-12-20 19:48:08
2427
原创 Quartz使用
Quartz是一个特性丰富的,开源的任务调度库。它几乎可以被集成到任何java应用中,从最小的单体应用到大型的企业级系统。Quartz可支持数千个任务的简单或者复杂的调度,支持集群和JTA事务。Quartz用起来很简单,示例如下。pom.xml配置如下: <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>qu...
2021-03-23 14:30:38
140
原创 elasticsearch7.5 安全设置
一 所有节点上修改配置文件echo "xpack.security.enabled: true" >> elasticsearch.ymecho "xpack.security.transport.ssl.enabled: true" >> elasticsearch.yml二 在cluster.initial_master_nodes中的任一节点上执行如下命令,生成authentication schema和私钥./bin/elasticsearch-cert...
2021-02-22 15:08:03
313
原创 elasticsearch 7.5集群部署
前提条件:1. 已安装jdk1.8或以上版本;2. 已下载安装包:elasticsearch-7.5.1-no-jdk-linux-x86_64.tar.gz;3. 三台服务器:10.1.32.10, 10.1.32.11, 10.1.32.12, root权限。步骤(以10.1.32.10为例):1. 修改系统配置。a) 用户最大可创建文件数,编辑limits.conf配置文件:vi /etc/security/limits.conf然后添加如下内容:...
2021-02-22 15:03:45
365
原创 温习zookeeper3.6.2的curator-client5.1.0
实现了zookeeper上节点的增,删,改,查和监听功能。1.pom.xml配置:<!-- 关于Zookeeper客户端的封装,这里只引用的recipes和client --> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>5.1.0<
2021-01-06 16:36:28
1063
原创 JVM调优笔记
java内存区域相关异常:1.java.lang.StackOverflowError --栈的深度超过了虚拟机容许的最大深度 --栈内存不够,-Xss2.java.lang.OutOfMemoryError: Java heap space --堆内存不够,内存泄露,-Xmx3.java.lang.OutOfMemoryError: PermGen space --方法区(持久代)使用过大,应用加载class过多,字节码生成技术使用过多 --XX:PermSize,-XX:Max...
2020-10-29 16:10:33
93
转载 2020-10-23 kafka 高吞吐量性能揭秘
https://blog.youkuaiyun.com/stark_summer/article/details/50144591
2020-10-23 15:50:21
118
原创 2020-10-23 重温apache storm
Apache Storm 是一款免费并且开源的分布式实时计算系统。Apache Storm使得无边界的流式数据处理非常简单。Apache Storm支持多种编程语言,用起来简单有趣。Apache Storm支持多种应用场景:实时分析、在线机器学习、流式计算、分布式的RPC、ETL等。Apache Storm是快速的,单节点每秒可处理超过100万条tuple。Apache Storm是可伸缩的、容错的、确保数据能被处理,并且易于安装和运维。Apache Storm集成了常用的队列和数据库技术。S
2020-10-23 11:17:37
111
原创 2020-10-20 kafka基本命令
kafka基本命令通过kafka-topics.sh脚本来创建一个名为topic-test1并且副本数为2、分区数为4的topic:bin/kafka-topics.sh --create --zookeeper 192.168.0.2:2181/kafka100 --topic topic-test1 --replication-factor 2 --partitions 4查看topic 属性:bin/kafka-topics.sh --zookeeper zk1:2181 --descri
2020-10-20 19:49:11
133
原创 2020-10-20 重温Flume
Flume是一个实时日志收集工具,具有分布式,高可靠,高可用等特点。接受各类型数据发送方 ,对数据可进行简单的处理,传输到各类数据接收方。目前生产中,使用flume采集请求日志到kafka,然后通过storm读取kafka中的数据保存到数据。1.可靠性当节点出现故障时,日志能够被传送到其他节点上而不会丢失。Flume提供了三种级别的可靠性保障,从强到弱依次分别为:end-to-end(收到数据agent首先将event写到磁盘上,当数据传送成功后,再删除;如果数据发送失败,可以重新发送。),
2020-10-20 11:17:57
122
原创 同步屏障CyclicBarrier
同步屏障CyclicBarrier的字面意思是可循环使用的屏障。它要做的事情是,让一组线程到达一个屏障时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续运行。默认的构造方法是CycBarrier(int parties),表示需要达到的线程数。CyclicBarrier可以被重置。示例如下:public class CyclicBarrierTest { public static void main(String[] args) throws Int...
2020-08-05 20:01:40
224
原创 项目管理的几点反思
一. 系统,模块间要划分边界。有时边界不是很清晰,但还是要有所划分的。二.任务要分配的具体的责任人。谁开发,谁验收,大致时间,要明确。三.人员不易频繁的变更。稍微复杂的系统,要保留固定的核心人员负责,不太重要的流程,系统或模块,可以由水平较低的人员负责。变更总是有成本的,人员交接,系统梳理,都需要额外的投入。四.对需求变更,设计变更要有度量。随意的变更,不仅加大工作量,还容易引起开发人...
2020-04-20 23:14:21
320
原创 需求管理
一. 需求口头沟通后,要有文档做确认,归档。后续作为开发的基线。二.需求要按系统,功能,模块进行分解。分解后,模块的开发周期到天,最长不能超过一周。模块间尽可能的减少依赖。如果有依赖,要提前定义接口或功能说明。三.敏捷开发。小步快跑,小规模的分批交付。以周为单位作为开发周期,开发完就进行完整的测试。四.持续集成。构建jenkins等集成测试环境,持续集成。编译问题不过夜。五.定期的...
2020-04-20 23:05:21
160
原创 POI导出大批量的数据生成excel
SXSSF是兼容XSSF的API的流式扩展,用于大量的sheet页生成,并且占用的堆内存空间有限的场景。 SXSSF 通过限制可以访问的表格行数来减少内存的占用,而XSSF则可以访问文档中所有的行。超出限制数量的行不可以访问,因为已经被写到了磁盘上的临时文件中。import junit.framework.Assert;import org.apache.poi.s...
2020-01-16 21:26:42
363
原创 Spring面向切面编程术语
重温术语:通知(Advice):通知定义了切面是什么以及何时使用。可以分为5种类型:前置通知,后置通知,返回通知,异常通知和环绕通知。连接点(Join point): 连接点是在应用执行过程中能够插入切面的一个点。切点(Point): 定义了切面何处使用。切面(Aspect): 切面是通知和切点的结合。织入(Weaving): 织入是把切面应用到目标对象并创建新的代理对象的过程...
2019-09-20 16:10:41
193
原创 @RequestParam和@PathVariable
RequestParam: Annotation which indicates that a method parameter should be bound to a web request parameter.PathVariable: Annotation which indicates that a method parameter should be bound to a URI ...
2019-09-18 17:06:20
140
原创 mysql乐观锁和悲观锁
当两个事务修改同一条数据时,会产生数据不一致的情况。 解决办法:乐观锁或者悲观锁 悲观锁分成两种:共享锁和排他锁。 添加共享锁:select * from db lock in share mode; 添加排他锁:select * from db for update。乐观锁则类似于cap机制。乐观锁的使用件是数据存在标识,对数据的每次修改都会修改标识...
2019-09-10 15:07:51
132
原创 mysql存储引擎比较
存储引擎比较 功能 MyISAM Memory InniDB Archive 存储限制 256TB RAM 64TB None 支持事务 No No Yes No 支持全文索引 Yes No No No 支持数索引 Yes Yes Yes No 支持哈希索引...
2019-08-27 17:50:34
99
原创 centos7 配置网卡及问题处理
cd /etc/sysconfig/network-scripts/vi ifcfg-eno16777736内容如下:HWADDR=00:0c:29:18:ca:06TYPE=EthernetBOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAI...
2018-03-29 23:19:09
2282
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人