1.jetlinks社区版存储
基本配置:1.mysql+es+redis
- pg+timesdb+redis
存储内容:(1)关系数据库存储平台的信息。例如用户,菜单,协议这些平台界面操作相关的信息。就类似我们平时开发的系统一样。
(2) 时序库:存储接收的数据,接收你通过接口存储的接收到的数据。设备的元数据。
(3)redis主要是缓存,token,用户登录状态。
总的来说,除了时序数据,其他和我们开发的软件没有什么差别。
2.社区版本和企业版存储差别
- 关系数据库
企业版支持更多适配,尤其是国产数据库。主要是达梦,金仓这些
- 时序库
企业版本支持iotdb,TDengine 这些。更加充分。
总结:企业版支持的就是存储过多,更快。社区版本是足够用。中小项目没有问题。企业版支持的是大项目。需要更多存储,更高性能。也是企业主要定位的盈利点吧。
3.jetlinks架构
不详细说了,官网都有文档,和详细。
这里想说一下和我们有关系。整个系统是组件化模块化的,结构很清晰。慢慢熟悉以后,会感觉很轻松修改。
4.存储扩展
企业版不说了,有配置模块分方便。但是社区版本需要自己动手,通过配置或者扩展解决。目前2.10版本时序存储已经支持TDengine。但是有一点点不符合大家的预期。不能完全替换es.我经过自己扩展iot和TDengine存储。大概明白了。TDengine真的不适合存储日志。太严重了。iotdb还行。TDengine不行。
我猜测基于这个原因。TDengine只能存储元数据,没有实现日志数据和其他数据存储。我勉强验证了一下,基本能跑。但是TDengine真没有iotdb方便,查询也没有。这个和比较的信息有出入。iotdb感觉存储和查询都比TDengine好在这里。
iotdb目前需要大家根据jetlinks的设计,自己实现所有接口。可以参照es的实现。我已经实现分片存储。
重点说说TDengine,有些小伙伴想换,但是目前社区版换不干净,要手动解决一下。修改一下源码。找到现在的TDengine组件。按照es,创建一个时序包timesXX。实现2个接口,管理接口和服务接口。重点:实现时什么都不要乱动,全部用现有的。不要自己多弄什么东西,就沿用以前的。将help引入,存储,查询都用原来的。实现即可。另外头疼的是,日志难存储。将原本的协议存储协议生成方法,简单处理一下,字符串将所有不可见字符转义一下。这样就可以完全替换使用了。不完美但是可以用。平台能正常跑起来。如果你想直接使用存储的数据。可能要清洗一下。因为存储的东西变化了。
总结:实现接口然后全部调用原来的即可。
这种比以前自己完全写,实现操作省很多事情。结构还保持一致。可以快速跑起来。