15. Messaging System

1.背景
REAL TIME
Latency low
data in motion
延時(shí)性要求高灾螃,系統(tǒng)快速收集數(shù)據(jù)快速處理。 所以需要消息系統(tǒng)犁跪,你不能都存下來等一天再處理摄乒。不然就不能即使防止類似信用卡盜刷的問題。
歷史數(shù)據(jù)(DATA IN DISK)
DATA IN MOTION(數(shù)據(jù)流動)
需要一個系統(tǒng)去分析數(shù)據(jù) 傳遞數(shù)據(jù)嗤军,這就是我們說的消息系統(tǒng)注盈。

2.什么是消息系統(tǒng)
Minix : IPC
Message Apps: wechat/ facebook messenger
TCP: 點(diǎn)到點(diǎn)的消息通訊(通過鏈路層傳遞消息)
Messaging Middle(消息中間件): AWS SQS(simple queue service)
SNS (push notification)
Open Source: XXX-MQ
MESSAGING VS STREAMING
streaming 偏重計(jì)算
messaging 偏重投遞
streaming 有order
messaging 不保證

  1. Messaging models
    JMS ->1. 點(diǎn)對點(diǎn)(一條消息,對應(yīng)一個生產(chǎn)者和一個消費(fèi)者):Queue
    2. 發(fā)布訂閱模式 (公告欄型雳,廣播):Topic
    Queue:


    image.png
  2. FIFO
    2.點(diǎn)對點(diǎn)
    3.Shared Consumption (消息隊(duì)列被共享)

  3. No ordering guarantee

SIMPLE JVM Process
sender/producer : 1+ producer threads
receiver/ consumer : 2+ consumer threads
messaging media : LinkedBlockingQueue

System :
sender/producer : 1+ producer machines
receiver/ consumer : 2+ consumer machines
messaging media : Distributed message queue system

用QUEUE的好處:
用淘寶來舉個例子当凡,11.11那天流量 會100倍的增長山害,系統(tǒng)是按平時(shí)的情況去配置的機(jī)器。比如NORMAL 情況下 QPS 為10K沿量,雙11 就可能是 1M
如果我每天都按洪峰去配置浪慌,那么就造成了讓費(fèi)。
為了解決這個問題朴则,淘寶里就有很多的QUEUE权纤。BUFFER的效果。根據(jù)實(shí)際的資源乌妒,去慢慢處理的這些洪峰的訂單請求汹想。

為什么可以用MQ接受那么大的流量而不能用數(shù)據(jù)庫來做這件事呢?

一個交易可能是個復(fù)雜的事務(wù)操作撤蚊,而不是簡單的記一筆古掏。用MQ簡化了復(fù)雜性,我只做簡單的一件事侦啸,存下來槽唾。把快速的發(fā)布者,和慢的消費(fèi)者解耦合光涂。當(dāng)流量不匹配時(shí)庞萍,使得系統(tǒng)不會被過高的壓力給擊垮。

缺點(diǎn)就是: 延遲高忘闻。

視頻編碼:
上傳的文件會很大钝计,處理一個VEDIO時(shí)間特別長。然后往消息隊(duì)列丟齐佳,這個VEDIO需要轉(zhuǎn)碼私恬。把這個事件轉(zhuǎn)移到其他機(jī)器去離線的做了。這樣就可以異步的完成炼吴。

TOPIC(訂閱發(fā)布模式)


image.png

好處:一份數(shù)據(jù)可以給多個消費(fèi)者

Messaging Architecture

image.png

橘色和紅色部分是需要考慮的践付。
一個是存儲(message store),一個是服務(wù)(broker)

single/multiple server : broker + message store(single/ multiple disks)

producer 和 consumer 會經(jīng)過 broker 進(jìn)行通訊缺厉。
CONSUMER 上下線的問題,如何知道上次讀到哪里
BROKER 是否要重傳

用戶最關(guān)心的是:Delivery semantics
消息 at most once 最多只發(fā)一次
at least once 最少一次
exactly once 只被消費(fèi)一次

使用者的角度隧土,消息能不能丟提针?
消息能不能重復(fù)?


image.png

No retries -> at most once
retries -> at least once
exactly once -> retires + mechanism (de-duplication, transaction)
producer 需要自己產(chǎn)生ID曹傀,然后去重辐脖。

保證至少一次的設(shè)計(jì)。

當(dāng)BROKER投遞了一個消息后皆愉,把這個消息從發(fā)送隊(duì)里移除嗜价,加入到PENDING隊(duì)列艇抠。
如果對面沒有發(fā)ACK,過了很久久锥,這個時(shí)候要把消息從PENDING隊(duì)列重新加回發(fā)送隊(duì)列家淤。
如果收到ACK,就從PENDING隊(duì)列里REMOVE瑟由。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末絮重,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子歹苦,更是在濱河造成了極大的恐慌青伤,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件殴瘦,死亡現(xiàn)場離奇詭異狠角,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蚪腋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進(jìn)店門丰歌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人辣吃,你說我怎么就攤上這事动遭。” “怎么了神得?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵厘惦,是天一觀的道長。 經(jīng)常有香客問我哩簿,道長宵蕉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任节榜,我火速辦了婚禮羡玛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宗苍。我一直安慰自己稼稿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布讳窟。 她就那樣靜靜地躺著让歼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪丽啡。 梳的紋絲不亂的頭發(fā)上谋右,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天,我揣著相機(jī)與錄音补箍,去河邊找鬼改执。 笑死啸蜜,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的辈挂。 我是一名探鬼主播衬横,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼呢岗!你這毒婦竟也來了冕香?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤后豫,失蹤者是張志新(化名)和其女友劉穎悉尾,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體挫酿,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡构眯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了早龟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惫霸。...
    茶點(diǎn)故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖葱弟,靈堂內(nèi)的尸體忽然破棺而出壹店,到底是詐尸還是另有隱情,我是刑警寧澤芝加,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布硅卢,位于F島的核電站,受9級特大地震影響藏杖,放射性物質(zhì)發(fā)生泄漏将塑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一蝌麸、第九天 我趴在偏房一處隱蔽的房頂上張望点寥。 院中可真熱鬧,春花似錦来吩、人聲如沸敢辩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽责鳍。三九已至,卻和暖如春兽间,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背正塌。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工嘀略, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留恤溶,地道東北人。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓帜羊,卻偏偏與公主長得像咒程,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子讼育,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評論 2 359