'Start RPC servers.
Start up 2 separate servers for handling inter-cell
communication via RPC.  Both handle the same types of
messages, but requests/replies are separated to solve
potential deadlocks. (If we used the same queue for both,
it\'s possible to exhaust the RPC thread pool while we wait
for replies.. such that we\'d never consume a reply.)'

def start_servers(self, msg_runner):

    topic_base = CONF.cells.rpc_driver_queue_base
    proxy_manager = InterCellRPCDispatcher(msg_runner)
    for msg_type in msg_runner.get_message_types():
        target = messaging.Target(topic=('%s.%s' % (topic_base, msg_type)), server=CONF.host)
        server = rpc.get_server(target, endpoints=[proxy_manager])
        server.start()
        self.rpc_servers.append(server)
