Skip to content

TC1 RabbitMQ

Matthieu Simonin edited this page Feb 15, 2018 · 3 revisions

Oslo messaging / RabbitMQ

General informations gathered by running the framework.

RabbitMQ Resources

Exchanges

#exchanges = 1 + 1 + #RPCclients

(We don't count the default exchanges created by rabbitmq)

RabbitMQ is creating 8 exchanges by default -

Oslo messaging implementations uses different exchanges:

  • 1: one topic exchange to implement direct communication between RPC clients and RPC servers (unicast and anycast).

A generic queue and each RPC Server specific queue are bound to this exchange. The routing key is used to differentiate between unicast or anycast traffic. For unicast the routing key of the message typically contains the hostname and thus will be directed to the corresponding specific queue of the targeted RPC Server. For anycast traffic, the routing key is generic (in the OpenStack world this will be the service name).

ombt-rpc-test (topic exchange) ---- rpc-test-topic (generic queue/routing key name)
                               \--- rpc-test-topic.ombt-test-topic-RPCServer-<hostname>... (specific queue/routing key name)
  • 1: one fanout exchange for fanout communication (multicast) between RPC clients and RPC servers.

One queue per RPC Server is bound to this exchange.

  • #clients: As many direct exchanges as RPC Client for receiving the return value of the RPC call request.

One queue per RPC Server is bound to this exchange.

Queues

#queues = 1(anycast) + #RPCservers(unicast) + #RPCservers(multicast) + #RPCclients(reply)

Initial results

Clone this wiki locally