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
- https://dzone.com/articles/ingesting-jms-messages-from-tibco-with-apache-nifi
- https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-jms-processors-nar/1.9.2/org.apache.nifi.jms.processors.PublishJMS/
- https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-jms-processors-nar/1.9.2/org.apache.nifi.jms.processors.ConsumeJMS/
- https://community.cloudera.com/t5/Community-Articles/Publishing-and-Consuming-JMS-Messages-from-Tibco-Enterprise/ta-p/248157
- https://docs.solace.com/Developer-Tools/Integration-Guides/Nifi.htm
- https://community.cloudera.com/t5/Community-Articles/Ingesting-and-Testing-JMS-Data-with-NiFi-into-Hive/ta-p/245848
- https://www.senia.org/2018/05/10/integrating-apache-nifi-with-ibm-mq/