Skip to main content

Migrating Apache Flume Flows to Apache NiFi: JMS To X and X to JMS

Migrating Apache Flume Flows to Apache NiFi:  JMS To/From Anywhere



This is a simple use case of being a gateway between JMS and other sources and sinks.   We can do a lot more than that in NiFi.  We can be a JMS Consumer or Producer.  All with No Code.  We can work with topics and queues and any message types you have.   We can turn tabular messages (JSON, CSV, XML, AVRO, Parquet, Grokable Text) into Records and process them at speed with queries, updates, merging and fast record processing that is schema aware.  So we know your fields and types and can validate those for you while real-time querying that data as it is sent from and to JMS topics and queues with Apache Calcite SQL.  We can store your schemas in our Cloudera Schema Registry and allow for REST API access to them.   Schemas are accessible from Spark, Flink, Kafka, NiFi and more.

It is extremely easy to do this in NiFi.

In our example we are using Apache ActiveMQ 5.15 as our example JMS Broker.   We are grabbing example data from a few different REST sources and pushing to and from our JMS broker.


Simple NiFi Flow For Pushing JMS Data to KUDU


We can monitor our JMS Activity in Apache ActiveMQ's Web Console




With Apache NiFi We Ingest All the REST Feeds




These feeds include Coinbase




NYC Demographics and Live Subway GTFS Data



Transit Land Feeds and Operators


World Trading Data



'Quandl REST Data


It is easy to Consume JMS messages from Topics or Queues


Consuming Messages in a snap, We just need to set our Connection Factory Service, Destination and Topic/Queue.




 JMS Connection Factory Settings, Just a Java Class, JAR path and Broker URI.   Yes we support SSL!


For JMS Queues, pick QUEUE and your QUEUE Name


Example JMS MetaData Produced including Delivery Mode, Expiration and Message ID




 Consume From a QUEUE


Consume From A TOPIC



Let's Push Any and All REST Feed to JMS Topics and Queues










References