使用Kafuka 作為業(yè)務(wù)消息系統(tǒng)

業(yè)務(wù)消息系統(tǒng)對于微服務(wù)架構(gòu)的必要性

  1. 微服務(wù)中少不了 EDA事件驅(qū)動機(jī)制荧琼,進(jìn)而少不了引入一套 業(yè)務(wù)消息系統(tǒng)處理事件
  2. 業(yè)務(wù)消息系統(tǒng)要保證消息的可靠性、一致性衷咽、可用性狞换、事務(wù)

Kafuka 作為業(yè)務(wù)消息系統(tǒng)的可能性和主流性污呼,主要用于消峰和異步解耦多組微服務(wù)
Kafuka作為業(yè)務(wù)消息系統(tǒng)的優(yōu)勢

  • 時(shí)間復(fù)雜度O(1)提供消息持久化裕坊,對 TB 級數(shù)據(jù)也可以保證O(n)訪問性能,可以配置保留策略
  • 高吞吐燕酷,單機(jī)100k/s 以上消息傳輸籍凝,引入sendfile、mmap系統(tǒng)調(diào)用實(shí)現(xiàn)"零拷貝"苗缩,基于順序 io 不是隨機(jī) io 和 clickhouse存儲原理類似饵蒂,
  • 支持 多組server間消息分區(qū),分布式消費(fèi)酱讶,同時(shí)保證每個(gè) partition 內(nèi)消息順序傳輸(offset)
  • 同時(shí)支持離線數(shù)據(jù)和在線實(shí)時(shí)數(shù)據(jù)處理
  • 最重要支持在線橫向擴(kuò)展
    Exactly Once:事務(wù)性退盯,確保分布式場景下的數(shù)據(jù)最終一致性
    在0.11之前還不支持事務(wù),只能做到 at least once泻肯、at most once 渊迁,0.11以后官方實(shí)現(xiàn)了一套分布式事物機(jī)制實(shí)現(xiàn)了 exactly once模式,這個(gè)是可以作為業(yè)務(wù)消息系統(tǒng)的關(guān)鍵
    消費(fèi)者消費(fèi)消息時(shí)可以指定具體的讀隔離級別
  • at least once
    讀完消息先 commit灶挟。這種模式下琉朽,如果在處理完消息后 commit 之前的 Consumer crash了,下次重新開始工作還會處理剛剛沒有 commit 的消息稚铣,實(shí)際上該消息已經(jīng)被處理過了箱叁。
  • at most once
    讀完消息先 commit 再處理消息。這種模式下惕医,如果 Consumer 在 commit 后還沒來得及處理消息就 crash 了耕漱,下次重新開始工作后就無法讀到剛剛已提交而未處理的消息。

0.11以后引入了冪等性曹锨,producer 不論向 server 發(fā)送多少重復(fù)數(shù)據(jù)server 只能持久化一條
https://www.cnblogs.com/middleware/p/9477133.html
Replication:可用性
0.8以后引入了 Replication孤个,相同 Partition可能會有多個(gè) Replica選舉出一個(gè) Leader一定程度上保證了可用性
Rebalance:高可用和在線水平擴(kuò)展
當(dāng)新的消費(fèi)者加入消費(fèi)組時(shí),會消費(fèi)一個(gè)或多個(gè)分區(qū)沛简,這些分區(qū)是之前其他消費(fèi)者負(fù)責(zé)的
作為業(yè)務(wù)消息系統(tǒng)對比rabbitmq齐鲤、rocketmq

  • 使用 kafuka 一定程度上可以保證基建統(tǒng)一,kafuka無論對于日志分析還是實(shí)時(shí)計(jì)算都是不可替代的一個(gè)重要組成椒楣,如果業(yè)務(wù)系統(tǒng)也應(yīng)用 kfk 一定程度上降低系統(tǒng)復(fù)雜度给郊,技術(shù)棧復(fù)雜度
  • 高吞吐、高可用對于業(yè)務(wù)消息系統(tǒng)一樣重要
  • kafuka官方暫時(shí)不支持延時(shí)隊(duì)列捧灰、消息重試淆九,需要自己實(shí)現(xiàn)统锤,也可以考慮接入其他 mq 實(shí)現(xiàn)
    https://juejin.cn/post/7065664161786626084
    http://dockone.io/article/9820
    https://zhuanlan.zhihu.com/p/365802989
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市炭庙,隨后出現(xiàn)的幾起案子饲窿,更是在濱河造成了極大的恐慌,老刑警劉巖焕蹄,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逾雄,死亡現(xiàn)場離奇詭異,居然都是意外死亡腻脏,警方通過查閱死者的電腦和手機(jī)鸦泳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來永品,“玉大人做鹰,你說我怎么就攤上這事《悖” “怎么了钾麸?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長炕桨。 經(jīng)常有香客問我喂走,道長,這世上最難降的妖魔是什么谋作? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任芋肠,我火速辦了婚禮,結(jié)果婚禮上遵蚜,老公的妹妹穿的比我還像新娘帖池。我一直安慰自己,他們只是感情好吭净,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布睡汹。 她就那樣靜靜地躺著,像睡著了一般寂殉。 火紅的嫁衣襯著肌膚如雪囚巴。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天友扰,我揣著相機(jī)與錄音彤叉,去河邊找鬼。 笑死村怪,一個(gè)胖子當(dāng)著我的面吹牛秽浇,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播甚负,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼柬焕,長吁一口氣:“原來是場噩夢啊……” “哼审残!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起斑举,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤搅轿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后富玷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體介时,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年凌彬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片循衰。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡铲敛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出会钝,到底是詐尸還是另有隱情伐蒋,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布迁酸,位于F島的核電站先鱼,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏奸鬓。R本人自食惡果不足惜焙畔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望串远。 院中可真熱鬧宏多,春花似錦、人聲如沸澡罚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽留搔。三九已至更胖,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間隔显,已是汗流浹背却妨。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留括眠,地道東北人管呵。 一個(gè)月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像哺窄,于是被迫代替她去往敵國和親捐下。 傳聞我的和親對象是個(gè)殘疾皇子账锹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353

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