It is also worth mentioning that message brokers quite often implement Publish/Subscribe patterns. The Publish/Subscribe model together with using a persistent message storage improves reliability of the solution.
In the Publish/Subscribe pattern, message senders do not send messages directly to recipients. They send their messages to a message broker who performs message routing based on subscriptions. Let's introduce some important notions for the Publish/Subscribe pattern:
Publisher: This is a participant in the Publish/Subscribe architecture, that sends messages to the message broker.
Subscriber: This is a participant in the Publish/Subscribe architecture, that retrieves messages from the message broker based on the subscriptions. The message retrieval can use polling, when the subscriber periodically inquires about the messages, as well as pushing, when the message broker sends messages to the subscriber based on its own schedule.