Wednesday, November 23, 2016

How to connect ESB with RabbitMQ MQTT?

Please follow below steps:

1. Install RabbitMQ

2. Enable management plugin using below command
 sudo rabbitmq-plugins enable rabbitmq_management  

3. Enable MQTT using below command
 sudo rabbitmq-plugins enable rabbitmq_mqtt  

4. Add below jar to <ESB_HOME>/repository/components/lib/
      axis2-transport-rabbitmq-amqp_1.1.0.wso2v9.jar  
      org.eclipse.paho.client.mqttv3_1.0.2.jar  

5. Created inboundEndpoint as follows
 <?xml version="1.0" encoding="UTF-8"?>  
 <inboundEndpoint name="test" onError="fault" protocol="mqtt"  
  sequence="TestIn" suspend="false" xmlns="http://ws.apache.org/ns/synapse">  
  <parameters>  
   <parameter name="sequential">true</parameter>  
   <parameter name="mqtt.connection.factory">mqttFactory</parameter>  
   <parameter name="mqtt.server.host.name">localhost</parameter>  
   <parameter name="mqtt.server.port">1883</parameter>  
   <parameter name="mqtt.topic.name">esb.test2</parameter>  
   <parameter name="content.type">application/json</parameter>  
   <parameter name="mqtt.subscription.qos">0</parameter>  
   <parameter name="mqtt.session.clean">false</parameter>  
   <parameter name="mqtt.ssl.enable">false</parameter>  
   <parameter name="mqtt.subscription.username">guest</parameter>  
   <parameter name="mqtt.subscription.password">guest</parameter>  
  </parameters>  
 </inboundEndpoint>  

 <?xml version="1.0" encoding="UTF-8"?>  
 <sequence name="TestIn" trace="disable" xmlns="http://ws.apache.org/ns/synapse">  
  <log level="full"/>  
  <drop/>  
 </sequence>  


You can test above explained setup using below steps:

1. You can see the successfully connected message in the ESB log, as below
 [2016-11-15 22:37:36,397] INFO - MqttConnectionConsumer Connected to the remote server.  

2. Add messages to the RabbitMQ using below command
 mosquitto_pub -h localhost -t esb.test2 -m "{"name":"tharanga"}"  

3. ESB receive messages successfully as below
 [2016-11-05 01:18:03,247] INFO - MqttAsyncCallback Received Message: Topic: esb/test2  
 [2016-11-05 01:18:03,247] INFO - LogMediator To: , MessageID: urn:uuid:AF748E7A7D10D0D8A61478288883249, Direction: request, Payload: {name:tharanga}  

Tested environment:

  • ESB 4.9.0
  • RabbitMQ 3.4.3

No comments:

Post a Comment