def start_servers(self, msg_runner):
        """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.)
        """
        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)
            # NOTE(comstud): We do not need to use the object serializer
            # on this because object serialization is taken care for us in
            # the nova.cells.messaging module.
            server = rpc.get_server(target, endpoints=[proxy_manager])
            server.start()
            self.rpc_servers.append(server)
dataset/ETHPy150Open BU-NU-CLOUD-SP16/Trusted-Platform-Module-nova/nova/cells/rpc_driver.py/CellsRPCDriver.start_servers/original