Chapter 2. Component overview
Red Hat AMQ consists of AMQ Broker, AMQ Interconnect, AMQ Clients, which work together to enable network communication in distributed applications.
Red Hat AMQ also includes AMQ Streams, which is based on Apache Kafka. AMQ Streams does not support AMQP or use the Red Hat AMQ Console.
2.1. AMQ Broker
AMQ Broker is a full-featured, message-oriented middleware broker. It offers advanced addressing and queueing, fast message persistence, and high availability. AMQ Broker supports multiple protocols and operating environments, enabling you to use your existing assets. AMQ Broker supports integration with Red Hat JBoss Enterprise Application Platform.
For more information, see Getting Started with AMQ Broker.
2.2. AMQ Interconnect
AMQ Interconnect provides flexible routing of messages between AMQP-enabled endpoints, including clients, brokers, and standalone services. With a single connection into a network of AMQ Interconnect routers, a client can exchange messages with any other endpoint connected to the network.
AMQ Interconnect does not use master-slave clusters for high availability. It is typically deployed in topologies of multiple routers with redundant network paths, which it uses to provide reliable connectivity. AMQ Interconnect can distribute messaging workloads across the network and achieve new levels of scale with very low latency.
For more information, see Using AMQ Interconnect.
2.3. AMQ Clients
AMQ Clients is a suite of AMQP 1.0 and JMS clients, adapters, and libraries. It includes JMS 2.0 support and new, event-driven APIs to enable integration into existing applications.
For more information, see AMQ Clients Overview.
AMQP clients
JMS clients
- AMQ JMS (AMQP 1.0)
- AMQ Core Protocol JMS
- AMQ OpenWire JMS
Adapters and libraries
2.4. AMQ Streams
AMQ Streams is a massively-scalable, distributed, and high-performance data streaming platform based on Apache Kafka. AMQ Streams simplifies the process of running Apache Kafka in an OpenShift cluster. It can also be installed on Red Hat Enterprise Linux.
AMQ Streams provides container images and Operators for running Kafka on OpenShift. AMQ Streams Operators are fundamental to the running of AMQ Streams. The Operators provided with AMQ Streams are purpose-built with specialist operational knowledge to effectively manage Kafka.
- Cluster Operator
- Deploys and manages Apache Kafka clusters, Kafka Connect, Kafka MirrorMaker, Kafka Bridge, Kafka Exporter, and the Entity Operator
- Entity Operator
- Comprises the Topic Operator and User Operator
- Topic Operator
- Manages Kafka topics
- User Operator
- Manages Kafka users representing the client applications that access the Kafka brokers
For more information, see AMQ Streams on OpenShift Overview.
2.5. Component compatibility
The following table lists the supported languages, platforms, and protocols of AMQ components. Note that any components supporting the same protocol can interoperate, even if their languages and platforms differ. For instance, AMQ Python can communicate with AMQ JMS.
Component | Languages | Platforms | Protocols |
---|---|---|---|
AMQ Broker | - | JVM | AMQP 1.0, MQTT, OpenWire, STOMP, Core Protocol |
AMQ Interconnect | - | Linux | AMQP 1.0 |
AMQ C++ | C++ | Linux, Windows | AMQP 1.0 |
AMQ JavaScript | JavaScript | Node.js, browsers | AMQP 1.0 |
AMQ JMS | Java | JVM | AMQP 1.0 |
AMQ .NET | C# | .NET | AMQP 1.0 |
AMQ Python | Python | Linux | AMQP 1.0 |
AMQ Ruby | Ruby | Linux | AMQP 1.0 |
AMQ Spring Boot Starter | Java | JVM | AMQP 1.0 |
AMQ Core Protocol JMS | Java | JVM | Core Protocol |
AMQ OpenWire JMS | Java | JVM | OpenWire |
AMQ JMS Pool | Java | JVM | - |
For more information, see Red Hat AMQ 7 Supported Configurations.