深入理解RocketMQ之訊息傳送和儲存流程

2022-09-21 02:27:08 字數 471 閱讀 9694

broker啟動時,向nameserver註冊資訊

客戶端呼叫producer傳送訊息時,會先從nameserver獲取該topic的路由資訊。訊息頭code為get_routeinfo_by_topic

從nameserver返回的路由資訊,包括topic包含的佇列列表和broker列表

producer端根據查詢策略,選出其中乙個佇列,用於後續儲存訊息

每條訊息會生成乙個唯一id,新增到訊息的屬性中。屬性的key為uniq_key

對訊息做一些特殊處理,比如:超過4m會對訊息進行壓縮

producer向broker傳送rpc請求,將訊息儲存到broker端。訊息頭的code為send_message或send_message_v2(配置檔案設定了特殊標誌)

consumerqueue和indexfile只是原始檔案的索引資訊

刷盤分為同步刷盤和非同步刷盤

非同步刷盤後台執行緒按一定時間間隔執行

深入理解C語言 深入理解指標

關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...

mysql 索引深入理解 深入理解MySql的索引

為什麼索引能提高查詢速度 先從 mysql的基本儲存結構說起 mysql的基本儲存結構是頁 記錄都存在頁裡邊 各個資料頁可以組成乙個雙向鍊錶每個資料頁中的記錄又可以組成乙個單向鍊錶 每個資料頁都會為儲存在它裡邊兒的記錄生成乙個頁目錄,在通過主鍵查詢某條記錄的時候可以在頁目錄中使用二分法快速定位到對應...

深入理解C語言 深入理解指標

關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...