讓我們從一個(gè)場景開始,以建立對我們討論主題的基本理解。現(xiàn)在大多數(shù)人都熟悉的是“忠誠度或獎(jiǎng)勵(lì)計(jì)劃”。
顧客使用他們的信用卡/借記卡進(jìn)行金融交易,購買雜貨、T恤、書籍...或者訂購度假時(shí)的航班和酒店房間...使用專用支付方式進(jìn)行任何購買。
公司然后根據(jù)消費(fèi)金額向顧客提供積分、里程、返現(xiàn)或福利。顧客可以使用這些積分/里程/返現(xiàn)/獎(jiǎng)勵(lì)來獲得折扣、免費(fèi)產(chǎn)品或會(huì)員特權(quán)。企業(yè)這樣做是為了激勵(lì)再次購買,并建立與顧客的信任。
圖像來源:tibco.com
什么是事件流處理 (ESP)? 那么,這是如何發(fā)生的?我的信用卡公司是如何將我花的每一美元與適當(dāng)?shù)馁M(fèi)用類別匹配,然后向我授予我可以用來預(yù)訂酒店房間或機(jī)票的里程數(shù)的?這就是“事件流處理 (ESP)”發(fā)揮作用的地方。ESP是一種能夠處理持續(xù)數(shù)據(jù)流(事件流)的技術(shù),一旦事件或變化發(fā)生,就能立即處理。通過處理單個(gè)數(shù)據(jù)點(diǎn)而不是整個(gè)批次,事件流處理平臺提供了一種架構(gòu),使軟件能夠理解、對事件作出反應(yīng),并在事件發(fā)生時(shí)運(yùn)行。
讓我們從數(shù)據(jù)集成的角度來考慮這個(gè)過程,我們有一個(gè)從“源系統(tǒng)”開始的事件,其中包含有關(guān)新交易的數(shù)據(jù),然后連接到“目標(biāo)系統(tǒng)”,在那里事件變化被加載、分析和轉(zhuǎn)換成期望的結(jié)果。只需幾行代碼的簡單軟件可以執(zhí)行此操作:
圖像來源:Learn Apache Kafka for Beginners
隨著源系統(tǒng)和/或目標(biāo)系統(tǒng)的數(shù)量增加,數(shù)據(jù)集成挑戰(zhàn)也增加了。
圖像來源:Learn Apache Kafka for Beginners
因此,正如您所看到的,集成變得并不容易。源系統(tǒng)和/或目標(biāo)系統(tǒng)的數(shù)量越多,就需要建立越多的集成,使架構(gòu)變得非常復(fù)雜。此外,每個(gè)源系統(tǒng)可能會(huì)因來自目標(biāo)系統(tǒng)的請求和連接數(shù)量增加而負(fù)擔(dān)過重。每個(gè)集成還會(huì)涉及協(xié)議、數(shù)據(jù)格式、數(shù)據(jù)模式和演變方面的困難。
這就是事件流處理平臺的用武之地。正如我們上面討論的,ESP平臺提供了一種使軟件能夠理解、對事件作出反應(yīng)并在事件發(fā)生時(shí)運(yùn)行的架構(gòu)。
什么是 Apache Kafka? — Kafka 是一種流行的事件流處理平臺。 與許多 ESP 平臺一樣,Kafka通過在源系統(tǒng)和目標(biāo)系統(tǒng)之間引入解耦來解決數(shù)據(jù)集成挑戰(zhàn):
Apache Kafka將收集、分類和存儲(chǔ)來自源系統(tǒng)(例如網(wǎng)站、定價(jià)數(shù)據(jù)、金融交易、用戶互動(dòng)等)的所有數(shù)據(jù)。這些源系統(tǒng)被稱為“生產(chǎn)者”,它們生成 Kafka 數(shù)據(jù)流。當(dāng)目標(biāo)系統(tǒng)需要接收數(shù)據(jù)時(shí),它們只需從 Kafka 數(shù)據(jù)中提取數(shù)據(jù)。因此,目標(biāo)系統(tǒng)被稱為“消費(fèi)者”。Kafka現(xiàn)在位于生成者接收數(shù)據(jù)和向消費(fèi)者發(fā)送數(shù)據(jù)之間。
Kafka的工作方式與消息隊(duì)列(例如 RabbitMQ)非常相似,但具有一些增強(qiáng)功能。Kafka有生產(chǎn)者和消費(fèi)者的概念,正如前面討論過的。生產(chǎn)者將消息推送到Kafka,而接收者獲取它們。許多消息可能通過Kafka傳遞,因此為了區(qū)分它們并允許您隔離不同的處理上下文,Kafka將消息分組到“主題”中。
每個(gè)試圖發(fā)布某些內(nèi)容的生產(chǎn)者都必須提供“主題名稱”。另一方面,消費(fèi)者訂閱一組主題(可以同時(shí)有許多主題),然后從這些主題中獲取消息。
圖片來源:hevodata.com
總結(jié)一下,這些是關(guān)于Kafka的關(guān)鍵重要信息:
Kafka是一個(gè)開源項(xiàng)目。它具有分布式、彈性的架構(gòu),并且容忍故障(您可以對其進(jìn)行修補(bǔ)和維護(hù),而無需關(guān)閉整個(gè)系統(tǒng))。Kafka具有橫向擴(kuò)展性。該項(xiàng)目旨在提供一個(gè)統(tǒng)一的、高吞吐量、低延遲(低于10毫秒)的平臺,用于處理實(shí)時(shí)數(shù)據(jù)流。
Kafka被許多組織(如Netflix、Uber、LinkedIn等)和IT團(tuán)隊(duì)用作消息系統(tǒng)、活動(dòng)跟蹤系統(tǒng)、流處理、微服務(wù)發(fā)布/訂閱、應(yīng)用程序日志收集、度量數(shù)據(jù)收集、解耦系統(tǒng)依賴關(guān)系以及與其他大數(shù)據(jù)技術(shù)集成。
Kafka是一個(gè)非常酷的平臺。我們可以使用Docker輕松在您的筆記本電腦上設(shè)置單節(jié)點(diǎn)Kafka集群。
本文鏈接:http://www.tebozhan.com/showinfo-26-16636-0.html事件流處理 (ESP) 與 Kafka 簡介
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com