文章目录
Kettle是一款非常强大的ETL工具,不仅可以使用图形化界面,还可以处理各种数据,今天记录一下本人使用Kettle中MQTT组件来实现从rabbitMQ中读取流数据,并进行解析和处理。
提示:以下是本篇文章正文内容,下面案例可供参考
一、Kettle为什么可以读取流数据?
首先,本人使用的是Kettle8.2,里面关于流处理的组件有以下几种 (注意Kettle版本,我现在使用的是8.x版本,这里面只有MQTT组件,可以连接rabbitMQ,但之前使用的7.x版本是没有MQTT流处理的,也就是不能处理rabbitMQ中的数据,而9.x版本中已经有rabbitMQ组件了):
从流中获取数据信息的第一步就是第一个组件“Get records fromstream”,之后会写到,这些流处理包括JMS、Kafka、MQTT。
然后,Kettle其实是不可以直接连接rabbitMQ的,rabbitMQ默认使用amqp协议,但也可以启用MQTT插件,来使用MQTT协议。因此,我们使用Kettle通过MQTT协议步骤来生产和消费rabbitMQ。
二、rabbitMQ中启动MQTT插件并创建队列和路由键
首先使用rabbitMQ自带的控制台输入命令,也可以用windows cd到rabbit目录输入命令。
输入以下命令:
rabbitmq-plugins enable rabbitmq_mqtt 开启 rabbitmq_mqtt 对应端口 1883 rabbitmq-plugins enable rabbitmq_web_mqtt 开启 rabbitmq_web_mqtt 对应端口 15675
因为我们是使用Kettle来连接rabbitMQ,所以使用的是1883端口,切记,只能使用端口1883,开启之后,可以在 http://rabbitMQ的ip地址:15672/#/ web页面查看端口是否开启: