oslo_messaing通過kombu與rabbitmq建立channel連接,向rabbitmq中發送數據
在oslo_messaging/_drivers/impl_rabbit.py中,初始化self.connection,此時channel為None
在self.ensure_connection才真實初始化channel,self.ensure中self.connection.connect是建立連接,調用kombu中Connction的connect方法
connect方法見下,其在impl_rabbit.py為excute_method的method()方法,autoretry調用execute_method方法,在出現異常時,執行error_back:
在kombu的connection方法中,使用self.transport的establish_connection
在建立連接時,from .transport import get_transport_cls, supports_librabbitmq,調用get_transport_cls,獲取transport_cls建立client端