DEV Community

loading...

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

tspannhw profile image Timothy Spann Originally published at datainmotion.dev on ・5 min read

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

Article 8 - This - JMS
*Article 7 - * https://www.datainmotion.dev/2019/10/migrating-apache-flume-flows-to-apache_15.html

*Article 6 - * https://www.datainmotion.dev/2019/10/migrating-apache-flume-flows-to-apache_9.html

*Article 5 - * https://www.datainmotion.dev/2019/10/migrating-apache-flume-flows-to-apache_35.html

*Article 4 - * https://www.datainmotion.dev/2019/10/migrating-apache-flume-flows-to-apache_8.html

*Article 3 - * https://www.datainmotion.dev/2019/10/migrating-apache-flume-flows-to-apache_7.html

*Article 2 - * https://www.datainmotion.dev/2019/10/migrating-apache-flume-flows-to-apache.html

Article 1 - https://www.datainmotion.dev/2019/08/migrating-apache-flume-flows-to-apache.html

*Source Code: * https://github.com/tspannhw/flume-to-nifi

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

Discussion (0)

pic
Editor guide