Red Hat AMQ

A lightweight, high-performance, robust messaging platform

Overview

Red Hat AMQ is a message broker for building communications among Java applications. Message-based applications are a key core capability of modern software development, and AMQ provides a solid foundation for building them. The software has numerous components to support a wide variety of applications, programming languages, databases, cloud providers and operating systems.

In order to build container-based apps, you need a messaging infrastructure to communicate among these containers. AMQ is not a single piece of software: you will work with several separate components.

AMQ Overview

  • The Broker itself, which is based on the Apache ActiveMQ Artemis project and handles the various transport and storage mechanisms for the messages. It runs on Linux and Windows. 

  • The Interconnect module, which is based on the Apache Qpid Dispatch project and routes messages among applications and protocols. It runs on Linux only. 

  • The Streams module, which is based on the Apache Kafka and Strimzi projects. It runs on Linux, macOS and Windows. It supports the publish/subscribe messaging method, better for containers. This is included in the standalone AMQ packaging.  

  • AMQ Online is based on Enmasse and is used for self-service Kubernetes messaging.

  • All of this software has a web-based management console that configures and controls all of the components from one place.

In addition to these components, AMQ also requires various clients with different language bindings and protocol support, such as C++, JavaScript, .NET, and Python. There are also Debezium Change Data Capture connectors that are used to capture row-level database changes and communicate these changes to your apps. Some of these clients are installed with the subscription manager, some use the Maven package manager (version 3.2.5 or later is recommended.)