Red Hat Training

A Red Hat training course is available for Red Hat AMQ

Chapter 1. Overview

AMQ Python is a Python library for writing messaging applications. It allows you to write client and server applications that send and receive AMQP messages.

AMQ Python is part of AMQ Clients, a suite of messaging libraries supporting multiple languages and platforms. See Introducing Red Hat JBoss AMQ 7 for an overview of the clients and other AMQ components. See AMQ Clients 1.2 Release Notes for information about this release.

AMQ Python is based on the Proton API from Apache Qpid.

1.1. Key Features

AMQ Python is a flexible and capable messaging API. It enables any application to speak AMQP 1.0.

  • An event-driven API that simplifies integration with existing applications
  • Access to all the features and capabilities of AMQP 1.0
  • SSL/TLS and SASL for secure communication
  • Seamless conversion between AMQP and language-native data types
  • Heartbeating and automatic reconnect for reliable network connections

1.2. Supported Standards and Protocols

AMQ Python supports the following industry-recognized standards and network protocols.

1.3. Supported Configurations

AMQ Python supports the following OS and language versions. See Red Hat JBoss AMQ 7 Supported Configurations for more information.

AMQ Python is supported on Red Hat Enterprise Linux 6 and 7 with Python 2.6 and 2.7.

1.4. Terms and Concepts

This section introduces the core API entities and describes how they operate together.

Table 1.1. API Terms

EntityDescription

Container

A top-level container of connections

Connection

A channel for communication between two peers on a network

Session

A serialized context for producing and consuming messages

Sender

A channel for sending messages to a target

Receiver

A channel for receiving messages from a source

Source

A named point of origin for messages

Target

A named destination for messages

Message

A mutable holder of application content

Delivery

A message transfer

AMQ Python sends and receives messages. Messages are transferred between connected peers over senders and receivers. Senders and receivers are established over sessions. Sessions are established over connections. Connections are established between two uniquely identified containers. Though a connection can have multiple sessions, often this is not needed. The API allows you to ignore sessions unless you require them.

A sending peer creates a sender to send messages. The sender has a target that identifies a queue or topic at the remote peer. A receiving peer creates a receiver to receive messages. The receiver has a source that identifies a queue or topic at the remote peer.

The sending of a message is called a delivery. The message is the content sent, including all metadata such as headers and annotations. The delivery is the protocol exchange associated with the transfer of that content.

To indicate that a delivery is complete, either the sender or the receiver settles it. When the other side learns that it has been settled, it will no longer communicate about that delivery. The receiver can also indicate whether it accepts or rejects the message.

1.5. Document Conventions

In this document, sudo is used for any command that requires root privileges. You should always exercise caution when using sudo, as any changes can affect the entire system.

For more information about using sudo, see The sudo Command.