筆者最近在業務上需要使用到metaq,也藉此閱讀了metaq的相關原始碼,準備分享metaq原始碼分析。先掃掃盲,如果讀者對metaq已經較為熟悉,可以跳過下一段落。
一、metaq簡介
metaq(全稱metamorphosis)是乙個高效能、高可用、可擴充套件的分布式訊息中介軟體,,metaq具有訊息儲存順序寫、吞吐量大和支援本地和xa事務等特性,適用於大吞吐量、順序訊息、廣播和日誌資料傳輸等場景,metaq在阿里巴巴各個子公司被廣泛應用,每天**250億+條訊息。主要應用於非同步解耦,mysql資料複製,收集日誌等場景。
主要特點
二、metaq的總體架構
訊息中介軟體消費訊息有兩種方式,推送訊息和拉取訊息,一般對於實時性要求非常高的訊息中介軟體,會更多的採用推送的模式,如activitiq,而metaq採用的主動拉取訊息的模式,通過zookeeper進行協調,metaq分為三部分:server、client(包括訊息產生者和消費者)以及協調者zookeeper,總體結構如下:
三、工程結構分析
工程依賴圖大致如下:
metaq原始碼分析 一
一 metaq簡介 metaq 全稱metamorphosis 是乙個高效能 高可用 可擴充套件的分布式消 息中介軟體,metaq具有訊息儲存順序寫 吞吐量大和支援本地和xa事務等特性,適用於大吞吐量 順序訊息 廣播和日誌資料傳輸等場景,metaq在阿 裡巴巴各個子公司被廣泛應用,每天 250億 條...
metaq原始碼解讀之FetchManager
fetchmanager 請求管理器介面。既然是管理器,就需要知道管理的物件是什麼?fetchrequest 管理的是一次次的請求。既然是管理器,就需要給被管理者提供容所?fetchrequestqueue 請求delay queue。既然是管理器,就需要有管理實施者?fetchrequestrun...
深入分析Java Web技術內幕 (一)
http解析 常見的http請求頭 請求頭說明accept charset 用於制定客戶端接受的字符集 accept encoding 用於制定可接受的內容編碼,如accpet encoding gzip。deflate accept language 用於指定一種自然語言,如 acept lang...