Skip to content

TC2 RabbitMQ

jrbalderrama edited this page Feb 22, 2018 · 3 revisions

Oslo messaging / RabbitMQ

> TODO General informations gathered by running the framework.

RabbitMQ Resources

Exchanges

#exchanges = 1 + #topics + #clients

(we omit the default exchanges created by rabbitmq).

  • 1: 1 topic exchange for anycast/unicast communication (routing key is used to differentiate between topics)
topic exchange
           |---- topic-0 (anycast on topic-0)
           |---- topic-1
           |---- ....
           |---- topic-n
           |
           |---- topic-0-server-0 (unicast for server-0 in topic-0)
           |---- topic-0-server-1
  • #topics: #topics fanout exchanges used for broadcasting in a topic group (as many queues as servers in the topic groups is bound to this exchange)
  • #clients: #clients direct exchanges used for the replies.

Queues

#queues = #topics + #servers + #servers + #clients
  • #topics: anycast
  • #servers: unicast
  • #servers: fanout on each topic group
  • #clients: reply queues.

Exchanges for controller

#exchanges = 1 + 7 * #topics

Without the default exchanges created by rabbitmq

  • 1: generic controller exchange
  • 7: exchanges per topic:
- client-listener
- client-notifier
- client-RPCClient
- client-RPCServer
- 3 replies

Queues for controller

#queues = 11 * #topics
  • 11: queues per topic:
- client-RPCClient
- client-RPCClient-fanout
- client-RPCClient-topic
- client-RPCServer
- client-RPCServer-fanout
- client-RPCServer-topic
- controller
- controller-topic
- 3 replies
Clone this wiki locally