性能优化方案
1、设备自注册优化:
设备自注册需要的时候开启,不需要的时候尽量关闭,避免平台每次都去判断判断设备是否重复,耗费性能。

2、日志插入优化:
当设备上报频率集中,并且数据量较大时,可开启,缓解数据库压力。第一个参数是开关,第二个参数是批量插入条数配置,第三个参数是最大缓存数据条数,超过该值丢弃,即使关闭状态,也请保持三个参数。数据量大时这会导致插入数据可能会有一两秒的延迟,但不会影响实时数据以及告警等功能的实时性。酌情开启。

3、设备日志定时删除:
平台默认采用的是mysql数据库,如果对日志存储时长有较高要求,可以将日志表改为pgsql超表,或者其他时序数据库等。后续会给出改造方案,也可自己更改。
如果对数据存储时长要求不高,平台自带定时删除数据功能,可以在产品或者设备其他功能界面配置存储时长,最小单位为小时

4、设备日志存储频率:
因为本平台默认采用的是Mysql,数据写入性能有限,如果您不想更换其他数据库,根据需要可以在协议中控制存储频率。
比如您的设备是每秒上报一条数据,可以在协议中加入每个设备收到消息时间缓存控制两秒或者十秒存储一条。
注意:这不会影响平台的告警、实时数据、数据转发等功能,只影响插入到数据库的日志条数。可通过代码灵活控制isStore这个参数。

5、其他日志存储频率:
同理,如果你的设备告警和功能下发(消息回复也算)比较多,可以开启以下几个配置,默认开启。

6、数据库切换
平台支持mysql和pgsql双数据库,先执行对应的数据库脚本。然后修改yml配置为pgsql,再配置application-pgsql.yml的pgsql连接即可使用pgsql版本。pgsql可自行安装timescale,然后将thinglinks_device_logs表创建为超表,根据设备日志频率需要选择按多长时间分区。如果您的下发日志和告警日志也非常频繁,建议将thinglinks_warn_record和thinglinks_function_record表都创建为超表。

