基于kettle的数据集成平台(三)

321 阅读2分钟

上篇文章主要介绍了使用kettle平台实现文档的高效解析。通过上传文档和下载文档的方式,来对各种异构文档进行数据格式的统一。本篇文章进行介绍kettle平台的其他高级功能,即:mqtt与websocket的相互转换。

场景描述:

需求:物联网平台的数据处理。

大家知道,物联网平台的数据处理过程:硬件设备层——》数据收集层——》业务逻辑层——》展示层。

物联网平台的主要数据传输协议有mqtt,coap,http等,mqtt是最常见的一种。展示层一般采用websocket技术进行展示。

问题:

  1. 如何将mqtt请求的数据转换为websocket呢?
  2. 如何在转换过程中加入业务逻辑呢?

方案:

如果采用按照处理普通需求的方式,按照定制化逻辑进行开发,势必会导致大量的代码量,而且因为逻辑不通用,会导致一系列的问题。我就猜测有没有这样的一个中间件来解决这个问题呢?通过在互联网上一顿操作,愣是找不到任何资源。我就下决心完成开发这套中间件。

效果预览:

mqtt客户端:MQTTBox。

通过mqttBox向主题windows发布消息,如下图。

数据集成平台:

平台提供websocket接口,并在平台中设置mqtt的相关配置

websocket客户端在线测试:

调用websocket接口,平台开始监听mqtt数据,若有数据进入,则会通过websocket推送出来

原理简介:

  • 通过“MQTT consumer”节点来连接mqtt服务器,当然连接服务器的配置也可以通过平台进行配置。

  • 通过“Get records from stream”节点来进行流处理,对每一条数据进行定制化处理。

将以上两个转换文件进行组合,便可以实现对mqtt的监听,以及对流数据的处理。

  • 平台原理:

通过将上述两个文件进行上传保存后,websocket服务接口通过执行这两个文件,将mqtt数据变化转换为websocket数据变化,并最终通过websocket通道进行数据输出。

总结:

平台通过mqtt与websocket的相互转换功能,非常巧妙的解决了物联网中的数据协议转换问题,极大的简化了开发工作量。当然这个功能不仅仅支持mqtt,消息中间件都支持(如:rabbitmqt,kafka等)。

若有什么疑问,可加qq893393953。