Red Hat AMQ
A lightweight, high-performance, robust messaging platform
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.
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.
All of this software has a web-based management console that configures and controls all of the components from one place.
AMQ supports different message persistence methods.
These are essential tools to operate your messaging infrastructure continually, without having to worry about losing messages or during broker failures. The methods include:
- File journaling, either using JavaNIO storage (with the caveat that you use at least Java v6) or Linux Asynchronous I/O. This latter has better performance and requires at least a Linux v2.6 kernel. AMQ Broker supports both NFS v.4 and GFS2 file systems.
- JDBC message storage. You need to be using a relatively recent version of PostgreSQL, MySQL or Apache Derby.
- Memory-mapped storage.
Multiple management interfaces.
AMQ has three different management tools, each has varying features:
- Web-based console.
- Command-line interface using Apache ActiveMQ Artemis.
- A management API using either the Java Management Extensions or JMS APIs.
AMQ supports a wide variety of standards and protocols.
This includes Java Message Service, Secure Sockets Layer, Streaming Text Oriented Messaging Protocol and Advanced Message Queueing Protocol. Part of this support includes near-real-time, publish/subscribe and store-and-forward messaging models.