Menu Search

Chapter 4. Concepts

4.1. Overview

The Broker comprises a number of entities. This section summaries the purpose of each of the entities and describes the relationships between them. These details are developed further in the sub-sections that follow.

The most important entity is the Virtualhost. A virtualhost is an independent container in which messaging is performed. A virtualhost exists in a container called a virtualhost node. A virtualhost node has exactly one virtualhost.

An Exchange accepts messages from a producer application and routes these to one or more Queues according to pre-arranged criteria called bindings. Exchange are an AMQP 0-8, 0-9, 0-9-1, 0-10 concept. They exist to produce useful messaging behaviours such as fanout. When using AMQP 0-8, 0-9, 0-9-1, or 0-10, the exchange is the only way ingressing a message into the virtualhost. When using AMQP 1.0, the application may route messages using an exchange (to take advantage of advanced behaviours) or it may publish messages direct to a queue.

Queues are named entities that hold/buffer messages for later delivery to consumer applications.

Ports accept connections for messaging and management. The Broker supports any number of ports. When connecting for messaging, the user specifies a virtualhost name to indicate the virtualhost to which it is to be connected.

Authentication Providers assert the identity of the user as it connects for messaging or management. The Broker supports any number of authentication providers. Each port is associated with exactly one authentication provider. The port uses the authentication provider to assert the identity of the user as new connections are received.

Group Providers provide mechanisms that provide grouping of users. A Broker supports zero or more group providers.

Access Control Provider allows the abilities of users (or groups of users) to be restrained. A Broker can have zero or one access control providers.

Connection Limit Provider restrains users (or groups of users) at opening new connections on AMQP ports.

Keystores provide a repositories of certificates and are used when the Broker accepts SSL connections. Any number of keystore providers can be defined. Keystores are be associated with Ports defined to accepts SSL.

Truststores provide a repositories of trust and are used to validate a peer. Any number of truststore provides can be defined. Truststores can be associated with Ports and other entities that form SSL connections.

Remote Replication Nodes are used when the high availability feature is in use. It is the remote representation of other virtualhost nodes that form part of the same group.

Loggers, at this point in the hierarchy, are responsible for the production of a log for the Broker.

These concepts will be developed over the forthcoming pages. The diagrams below also help put these entities in context of one and other.

Figure 4.1. Message Flow through Key Entities

Message Flow through the Key Entities of the Broker

Figure 4.2. Broker Structure showing major entities

Broker Structure