Overview

== Open Source Message Broker Software (a service that handles the distribution of messages)
– released in 2013
– implements Advanced Message Queuing Protocol (AMQP)
– meanwhile also STOMP and MQTT

Advanced Message Queuing Protocol (AMQP)

== binary network protocol
– independent of any programming language (sender and receiver do not have to understand the same programming language)

AMQP

Principle

– There is a queue between the producer and the consumer of a message. The messages are temporarily stored in this queue
– Messages == can be instructions to other programs or actual text messages
– The producer of the message does not have to take care of sending the message himself and does not have to wait until the recipient has received it
→ asynchronous procedure

Stations in the message transmission

Producer: creates news
Exchange: part of RabbitMQ, forwards messages
Queue: part of RabbitMQ, stores messages
Consumer: processes the message

Message transmission process

– Producer publishes a message; gives the message a routing key (==address)
→ passes it to the Exchange
→ distributes the messages to different queues using the routing key

Binding

– There is a so-called binding between Exchange and Queue
– this connects each individual queue to the Exchange
– defines, according to which criteria a message should be forwarded

Direct Exchange

== direct connection between transmitter and receiver
– one queue + one consumer

Topic Exchange

– addressing multiple queues

Fanout Exchange

== Broadcast (distribution of a message to all available queues, without sorting)

Header Exchange

– corresponds to the Topic Exchange
– but browsing is done via header attributes