基于binlog的使用摸索

? ? ? ? 因為作業(yè)系統(tǒng),難免會遇到這樣一些問題,就是報表业扒,各種緯度查詢,而我們項目又不是基于大數(shù)據(jù)框架來做的舒萎,所以在滿足多維度方面程储,以及實時性要求方面就稍顯遜色

如果基于現(xiàn)有系統(tǒng)業(yè)務(wù),讓你去實現(xiàn)一個統(tǒng)計類報表臂寝,你的方案章鲤?

第一種方案,各種表數(shù)據(jù)關(guān)聯(lián)交煞,然后滿足業(yè)務(wù)要求咏窿。問題來了,我們有些表用了分表素征,有些表又是跨庫了集嵌,怎么辦?

方案二御毅,我們建一張大表根欧,然后把關(guān)聯(lián)表的數(shù)據(jù)都往這張大表里塞,然后去查詢端蛆。這里的問題就是凤粗,這張表很快就會被撐爆掉,直到最后查不了今豆。后來我們引入es嫌拣,但是前提還是基于這張大表,比如我們的庫存流水記錄

現(xiàn)有實現(xiàn)呆躲,我們通過定時任務(wù)撈取增量數(shù)據(jù)然后往es推送异逐,然后查詢直接通過es查詢,解決了多維度的查詢問題插掂。這里我們發(fā)現(xiàn)一個問題灰瞻,那就是報表的實時性。如果現(xiàn)場業(yè)務(wù)允許你的延遲辅甥,那么你可以這么做酝润。

為了低延時,我們引入binlog方案

binlog方案是基于目前數(shù)據(jù)庫的binlog璃弄,我們直接讀取過來要销,然后直接推送es。

這里需要考慮以下問題谢揪?

如何獲取binlog蕉陋?binlog和作業(yè)系統(tǒng)如何打通捐凭?binlog的解析拨扶?binlog的批量推送es凳鬓,es能扛多大并發(fā)?

如何獲取binlog,這里我們是主從備份的方案中獲取靈感患民,再加一個備庫缩举,接到主庫上。接到之后匹颤,我們直接拋到kafka仅孩,這里這樣做的目地就是binlog的量非常大,也是考慮到kafka出色的并發(fā)能力印蓖,目前是整庫遷移方案辽慕,所以有個問題就是如果這個庫的表數(shù)量很大,那么我們便利我們所需要的表赦肃,也很耗時溅蛉,這就違背了我們的初衷。后期需要迭代表的遷移方案他宛。

發(fā)布=訂閱船侧,我們首先要知道的就是,binlog本身就是有順序的厅各,然后通過kafka一批過來镜撩,而我們的作業(yè)系統(tǒng)又是集群架構(gòu),這就會因為并發(fā)導致一系列問題队塘。比如袁梗,因為最新操作的binlog,卻因為作業(yè)系統(tǒng)并發(fā)最先執(zhí)行憔古,而早期的binlog卻最后執(zhí)行遮怜,這就造成了老數(shù)據(jù)覆蓋新數(shù)據(jù)。這是一個很嚴重的問題投放。所以我們就做了這樣這個規(guī)定奈泪,每張表,我們使用一個主題灸芳,任何時刻只允許一臺機器消費涝桅。

所以建立好這樣的規(guī)則之后,我們就拿到了這張表的binlog烙样,并且一定是順序拿到的冯遂。接到數(shù)據(jù)操作之后,開始解析谒获,解析就是把binlog轉(zhuǎn)化為我們的要操作的數(shù)據(jù)蛤肌。

binlog結(jié)構(gòu)壁却,每一步數(shù)據(jù)表的操作,都會有一條binlog裸准,分為兩部分展东,操作頭,操作數(shù)炒俱。操作頭里包含了我們的表名盐肃,以及關(guān)鍵字,比如insert,update等权悟。操作數(shù)分為砸王,操作前和操作后的數(shù)據(jù)兩部分。

一批解析完峦阁,然后逐條推送es谦铃,有必要這樣做?

因為我們每拿到一批榔昔,已經(jīng)是有先后順序驹闰,那我們只要拿到這一批中,操作時間最新的那一條不就可以么件豌,這樣前面的全部省略疮方,推送es的并發(fā)也就會降下來

目前該方案還在摸索階段,成熟以后茧彤,會再做一次分享

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末骡显,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子曾掂,更是在濱河造成了極大的恐慌惫谤,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件珠洗,死亡現(xiàn)場離奇詭異溜歪,居然都是意外死亡,警方通過查閱死者的電腦和手機许蓖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進店門蝴猪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人膊爪,你說我怎么就攤上這事自阱。” “怎么了米酬?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵沛豌,是天一觀的道長。 經(jīng)常有香客問我赃额,道長加派,這世上最難降的妖魔是什么叫确? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮芍锦,結(jié)果婚禮上竹勉,老公的妹妹穿的比我還像新娘。我一直安慰自己醉旦,他們只是感情好饶米,可當我...
    茶點故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布桨啃。 她就那樣靜靜地躺著车胡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪照瘾。 梳的紋絲不亂的頭發(fā)上匈棘,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天,我揣著相機與錄音析命,去河邊找鬼主卫。 笑死,一個胖子當著我的面吹牛鹃愤,可吹牛的內(nèi)容都是我干的簇搅。 我是一名探鬼主播,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼软吐,長吁一口氣:“原來是場噩夢啊……” “哼瘩将!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起凹耙,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤姿现,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后肖抱,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體备典,經(jīng)...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年意述,在試婚紗的時候發(fā)現(xiàn)自己被綠了提佣。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,742評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡荤崇,死狀恐怖拌屏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情天试,我是刑警寧澤槐壳,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站喜每,受9級特大地震影響务唐,放射性物質(zhì)發(fā)生泄漏雳攘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一枫笛、第九天 我趴在偏房一處隱蔽的房頂上張望吨灭。 院中可真熱鬧,春花似錦刑巧、人聲如沸喧兄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吠冤。三九已至,卻和暖如春恭理,著一層夾襖步出監(jiān)牢的瞬間拯辙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工颜价, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留涯保,地道東北人。 一個月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓周伦,卻偏偏與公主長得像夕春,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子专挪,可洞房花燭夜當晚...
    茶點故事閱讀 45,747評論 2 361

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