基于最新的release-4.7.1代碼分析。
用戶端是個單獨子產品

從UT看Producer API
閱讀源碼,不推薦從入口開始看到底,畢竟你太年輕,把握不住它的底。我們可以帶着問題去研究源碼:Producer是如何發消息的?
推薦從UT用例入手。通過這些小流程,debug檢視關鍵流程即可。
RocketMQ用戶端的Producer的所有測試用例都在DefaultMQProducerTest類,這就很友善我們快速了解Producer。
主要測試用例
Producer相關的UML圖
-
門面模式(Facade Pattern)
給用戶端提供了一個可以通路系統的接口,隐藏系統内部的複雜性。
接口MQProducer就是門面,用戶端隻要使用這個接口就可以通路Producer實作消息發送的相關功能,使用上不必再與其他複雜實作類打交道。
類DefaultMQProducer實作了接口MQProducer,方法實作大多沒有業務邏輯,隻是封裝對其他實作類的方法調用,也可視為是門面。
Producer大部分業務邏輯實作都在類DefaultMQProducerImpl。
有時實作分散在很多内部類,不友善用接口來對外提供服務,就可仿照RocketMQ,使用門面模式隐藏内部實作,對外提供服務。
接口MQAdmin定義了一些中繼資料管理的方法,在消息發送過程會用到。