Kettle整合Rabbitmq消息队列
关于Rabbitmq消息队列知识可以参考我往期博客
一. 简介
Kettle没有直接的rabbitMQ步骤,但streaming类别下有MQTT步骤。rabbitMQ默认使用amqp协议,但也可以启用MQTT插件,来使用MQTT协议。
因此,我们使用Kettle通过MQTT协议步骤来生产和消费rabbitMQ。
二. 环境准备
我的测试环境为虚拟机的Docker
docker pull cyrilix/rabbitmq-mqtt
docker run -p 1883:1883 -p 4369:4369 -p 5671:5671 -p 5672:5672 -p 8883:8883 -p 15672:15672 -p 25672:25672 -p 15675:15675 -d cyrilix/rabbitmq-mqtt
abbitmq管理控制台的默认端口是15672,mqtt默认端口是1883,websocket默认端口是15675,所以启动容器的时候需要做端口映射,否则无法通过宿主机器访问
三. Rabbitmq配置
- 进入rabbitMQ管理界面:
http://你的IP:15672
- 默认登录用户guest/guest
- 在exchange下创建一个“myTopic”topic
- 给guest用户添加新的myTopic权限
四. Kettle连接消息队列
4.1 配置MQTT生产者
- 创建一个转换
- 添加conntion,topic,user/pass等信息
注:端口一定注意,不再是5672而是1883,是MQTT协议端口。
4.2 配置消费者
- 创建一个转换,选择MQTT消费者,配置topic,及处理数据转换
- 创建message处理转换,使用Get records from stream节点获取消息
五. 测试
- 开始消费者,kettle会持续监听
- 运行生产者,产生消息
- 此时消费者端接到数据并打印出来