Kafka作為一款熱門的消息隊(duì)列中間件,具備高效可靠的消息異步傳遞機(jī)制,主要用于不同系統(tǒng)間的數(shù)據(jù)交流和傳遞,在企業(yè)解決方案、金融支付、電信、電子商務(wù)、社交、即時(shí)通信、視頻、物聯(lián)網(wǎng)、車聯(lián)網(wǎng)等眾多領(lǐng)域都有廣泛應(yīng)用。
異步通信
將業(yè)務(wù)中屬于非核心或不重要的流程部分,使用消息異步通知的方式發(fā)給目標(biāo)系統(tǒng),這樣主業(yè)務(wù)流程無(wú)需同步等待其他系統(tǒng)的處理結(jié)果,從而達(dá)到系統(tǒng)快速響應(yīng)的目的。
如網(wǎng)站的用戶注冊(cè)場(chǎng)景,在用戶注冊(cè)成功后,還需要發(fā)送注冊(cè)郵件與注冊(cè)短信,這兩個(gè)流程使用Kafka消息服務(wù)通知郵件發(fā)送系統(tǒng)與短信發(fā)送系統(tǒng),從而提升注冊(cè)流程的響應(yīng)速度。
圖1串行發(fā)送注冊(cè)郵件與短信流程
用場(chǎng)景1.jpg)
圖2借助消息隊(duì)列異步發(fā)送注冊(cè)郵件與短信流程
用場(chǎng)景2.jpg)
錯(cuò)峰流控與流量削峰
在電子商務(wù)系統(tǒng)或大型網(wǎng)站中,上下游系統(tǒng)處理能力存在差異,處理能力高的上游系統(tǒng)的突發(fā)流量可能會(huì)對(duì)處理能力低的某些下游系統(tǒng)造成沖擊,需要提高系統(tǒng)的可用性的同時(shí)降低系統(tǒng)實(shí)現(xiàn)的復(fù)雜性。電商大促銷等流量洪流突然來(lái)襲時(shí),可以通過(guò)隊(duì)列服務(wù)堆積緩存訂單等信息,在下游系統(tǒng)有能力處理消息的時(shí)候再處理,避免下游訂閱系統(tǒng)因突發(fā)流量崩潰。消息隊(duì)列提供億級(jí)消息堆積能力,3天的默認(rèn)保留時(shí)長(zhǎng),消息消費(fèi)系統(tǒng)可以錯(cuò)峰進(jìn)行消息處理。
另外,在商品秒殺、搶購(gòu)等流量短時(shí)間內(nèi)暴增場(chǎng)景中,為了防止后端應(yīng)用被壓垮,可在前后端系統(tǒng)間使用Kafka消息隊(duì)列傳遞請(qǐng)求。
圖3消息隊(duì)列應(yīng)對(duì)秒殺大流量場(chǎng)景
用場(chǎng)景3.jpg)
日志同步
在大型業(yè)務(wù)系統(tǒng)設(shè)計(jì)中,為了快速定位問(wèn)題,全鏈路追蹤日志,以及故障及時(shí)預(yù)警監(jiān)控,通常需要將各系統(tǒng)應(yīng)用的日志集中分析處理。
Kafka設(shè)計(jì)初衷就是為了應(yīng)對(duì)大量日志傳輸場(chǎng)景,應(yīng)用通過(guò)可靠異步方式將日志消息同步到消息服務(wù),再通過(guò)其他組件對(duì)日志做實(shí)時(shí)或離線分析,也可用于關(guān)鍵日志信息收集進(jìn)行應(yīng)用監(jiān)控。
日志同步主要有三個(gè)關(guān)鍵部分:日志采集客戶端,Kafka消息隊(duì)列以及后端的日志處理應(yīng)用。
1.日志采集客戶端,負(fù)責(zé)用戶各類應(yīng)用服務(wù)的日志數(shù)據(jù)采集,以消息方式將日志“批量”“異步”發(fā)送Kafka客戶端。
Kafka客戶端批量提交和壓縮消息,對(duì)應(yīng)用服務(wù)的性能影響非常小。
2.Kafka將日志存儲(chǔ)在消息文件中,提供持久化。
3.日志處理應(yīng)用,如Logstash,訂閱并消費(fèi)Kafka中的日志消息,最終供文件搜索服務(wù)檢索日志,或者由Kafka將消息傳遞給Hadoop等其他 大數(shù)據(jù) 應(yīng)用系統(tǒng)化存儲(chǔ)與分析。
圖4日志同步示意圖
用場(chǎng)景4.jpg)
最新文章
- kafka是什么_kafka介紹_分布式消息服務(wù)Kafka版
- 分布式消息服務(wù)Kafka版與分布式消息服務(wù)RocketMQ版的區(qū)別_Kafka與RocketMQ對(duì)比_Kafka與RocketMQ差異
- 分布式消息系統(tǒng)Kafka_分布式消息系統(tǒng)_分布式消息kafka可以解決什么問(wèn)題-華為云
- Kafka架構(gòu)_Kafka如何實(shí)現(xiàn)負(fù)載均衡_Kafka數(shù)據(jù)存儲(chǔ)方式-華為云
- MapReduce服務(wù)_什么是Kafka_如何使用Kafka
- Kafka與其他消息隊(duì)列的對(duì)比_什么是Kafka_分布式消息系統(tǒng)-華為云