ExchangeType
Direct = 1
Direct exchanges delivers messages to queues based on the message routing key. A direct exchange is ideal for the
unicast routing of messages (although they can be used for multicast routing as well).
Fanout = 2
Fanout exchanges routes messages to all of the queues that are bound to it and the routing key is ignored.
If N queues are bound to a fanout exchange, when a new message is published to that exchange a copy of
the message is delivered to all N queues. Fanout exchanges are ideal for the broadcast routing of messages.
Headers = 3
Headers exchanges is designed for routing on multiple attributes that are more easily expressed as message headers than
a routing key. Headers exchanges ignore the routing key attribute
Topic = 4
Topic exchanges route messages to one or many queues based on matching between a message routing key and the pattern
that was used to bind a queue to an exchange.
Unknown = 0