MQTT---HiveMQ源碼詳解(十四)Persistence-LocalPersistence

簡介

HiveMQ的Persistence提供配置包括File和Memory,以解決不同場景的不同需求再姑,使用者可以自行配置六種信息的PersistenceMode

就代碼來講淫僻,又分為LocalPersistence和Cluster/SinglePersistence此虑。LocalPersistence主要是作本地的Persistence;Cluster/SinglePersistence主要是根據(jù)用戶是否Cluster來決定不同的Persistence業(yè)務處理听盖。

本節(jié)我們先講LocalPersistence


類圖

LocalPersistence
  • 每個LocalPersistence都是由對應的Provider根據(jù)用戶的配置來提供對應的LocalPersistence。

  • LocalPersistence主要分為這幾這么幾類QueuedMessage裂七、ClientSessionSubscriptions皆看、IncomingMessageFlow、OutgoingMessageFlow碍讯、ClientSession悬蔽、RetainedMessage、LWT(這個是local的捉兴,不需要Cluster),主要持久隊列消息蝎困、客戶訂閱录语、Incoming消息流水、Outgoing消息流水禾乘、client session澎埠、保留消息。

bucket應用

由于這些Persistence的信息始藕,都是跟client強相關的蒲稳,那么通過bucket,通過clientid與bucket count計算出對應存儲的bucket伍派,這樣可以數(shù)量級減少查找速度江耀。每個Persistence信息的bucket數(shù)量都是可以通過配置文件進行自由定義配置

bucket計算

public static int bucket(@NotNull String clientId, int bucketCount) {
        return Math.abs(clientId.hashCode() % bucketCount);
    }

PersistenceExecutor

由于持久化的處理也都是通過全部異步處理,類似于CallbackExecutor,Persistence的任務也都是通過統(tǒng)一的Executor進行調度诉植,以達到提高效率祥国,減少沒必要的cpu競爭以及線程泛濫的問題。


MQTT交流群:221405150

RocketMQ交流群:10648794

NewSQL交流群:153575008


最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晾腔,一起剝皮案震驚了整個濱河市舌稀,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌灼擂,老刑警劉巖壁查,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異剔应,居然都是意外死亡睡腿,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門峻贮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嫉到,“玉大人,你說我怎么就攤上這事月洛。” “怎么了孽锥?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵嚼黔,是天一觀的道長。 經(jīng)常有香客問我惜辑,道長唬涧,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任盛撑,我火速辦了婚禮碎节,結果婚禮上,老公的妹妹穿的比我還像新娘抵卫。我一直安慰自己狮荔,他們只是感情好胎撇,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著殖氏,像睡著了一般晚树。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上雅采,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天爵憎,我揣著相機與錄音,去河邊找鬼婚瓜。 笑死宝鼓,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的巴刻。 我是一名探鬼主播愚铡,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼冈涧!你這毒婦竟也來了茂附?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤督弓,失蹤者是張志新(化名)和其女友劉穎营曼,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體愚隧,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡蒂阱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了狂塘。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片录煤。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖荞胡,靈堂內(nèi)的尸體忽然破棺而出妈踊,到底是詐尸還是另有隱情,我是刑警寧澤泪漂,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布廊营,位于F島的核電站,受9級特大地震影響萝勤,放射性物質發(fā)生泄漏露筒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一敌卓、第九天 我趴在偏房一處隱蔽的房頂上張望慎式。 院中可真熱鬧,春花似錦、人聲如沸瘪吏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肪虎。三九已至劣砍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間扇救,已是汗流浹背刑枝。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留迅腔,地道東北人装畅。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像沧烈,于是被迫代替她去往敵國和親掠兄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理锌雀,服務發(fā)現(xiàn)蚂夕,斷路器,智...
    卡卡羅2017閱讀 134,600評論 18 139
  • 點擊查看原文 Web SDK 開發(fā)手冊 SDK 概述 網(wǎng)易云信 SDK 為 Web 應用提供一個完善的 IM 系統(tǒng)...
    layjoy閱讀 13,675評論 0 15
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,518評論 25 707
  • 基本目標與設計基本思想 Redis cluster 目標 高性能腋逆,并且能線性擴展到1000個節(jié)點婿牍。不需要代理,使用...
    tafeng閱讀 2,756評論 0 0
  • 功能 Cluster/Single Persistence主要是處理如下這些數(shù)據(jù)信息: client sessio...
    西安PP閱讀 879評論 1 0