事件流處理 (ESP) 與 Kafka 簡介
來源:小技術君
讓我們從一個場景開始,以建立對我們討論主題的基本理解。現在大多數人都熟悉的是“忠誠度或獎勵計劃”。
顧客使用他們的信用卡/簽帳金融卡進行金融交易,購買雜貨、T恤、書籍...或者訂購度假時的航班和酒店房間...使用專用支付方式進行任何購買。
公司然後根據消費金額向顧客提供積分、里程、返現或福利。顧客可以使用這些積分/里程/返現/獎勵來獲得折扣、免費產品或會員特權。企業這樣做是為了激勵再次購買,並建立與顧客的信任。
什麼是事件流處理 (ESP)? 那麼,這是如何發生的?我的信用卡公司是如何將我花的每一美元與適當的費用類別匹配,然後向我授予我可以用來預訂酒店房間或機票的里程數的?這就是“事件流處理 (ESP)”發揮作用的地方。ESP是一種能夠處理持續資料流(事件流)的技術,一旦事件或變化發生,就能立即處理。透過處理單個資料點而不是整個批次,事件流處理平臺提供了一種架構,使軟體能夠理解、對事件作出反應,並在事件發生時執行。
影像來源:tibco.com
ESP 平臺
讓我們從資料整合的角度來考慮這個過程,我們有一個從“源系統”開始的事件,其中包含有關新交易的資料,然後連線到“目標系統”,在那裡事件變化被載入、分析和轉換成期望的結果。只需幾行程式碼的簡單軟體可以執行此操作:
影像來源:Learn Apache Kafka for Beginners
隨著源系統和/或目標系統的數量增加,資料整合挑戰也增加了。
影像來源:Learn Apache Kafka for Beginners
因此,正如您所看到的,整合變得並不容易。源系統和/或目標系統的數量越多,就需要建立越多的整合,使架構變得非常複雜。此外,每個源系統可能會因來自目標系統的請求和連線數量增加而負擔過重。每個整合還會涉及協議、資料格式、資料模式和演變方面的困難。
這就是事件流處理平臺的用武之地。正如我們上面討論的,ESP平臺提供了一種使軟體能夠理解、對事件作出反應並在事件發生時執行的架構。
什麼是 Apache Kafka? — Kafka 是一種流行的事件流處理平臺。 與許多 ESP 平臺一樣,Kafka透過在源系統和目標系統之間引入解耦來解決資料整合挑戰:
Apache Kafka將收集、分類和儲存來自源系統(例如網站、定價資料、金融交易、使用者互動等)的所有資料。這些源系統被稱為“生產者”,它們生成 Kafka 資料流。當目標系統需要接收資料時,它們只需從 Kafka 資料中提取資料。因此,目標系統被稱為“消費者”。Kafka現在位於生成者接收資料和向消費者傳送資料之間。
它是如何工作的?
Kafka的工作方式與訊息佇列(例如 RabbitMQ)非常相似,但具有一些增強功能。Kafka有生產者和消費者的概念,正如前面討論過的。生產者將訊息推送到Kafka,而接收者獲取它們。許多訊息可能透過Kafka傳遞,因此為了區分它們並允許您隔離不同的處理上下文,Kafka將訊息分組到“主題”中。
每個試圖釋出某些內容的生產者都必須提供“主題名稱”。另一方面,消費者訂閱一組主題(可以同時有許多主題),然後從這些主題中獲取訊息。
圖片來源:hevodata.com
總結一下,這些是關於Kafka的關鍵重要資訊:
•生產者將訊息釋出到佇列,消費者獲取它們進行處理。•消費者和生產者在一組被稱為主題的訊息上工作。這使您能夠隔離不同型別的訊息。•消費者分組成消費者組,允許您將工作負載分佈到處於同一組的不同消費者例項中。•消費者是Java應用程式,可以擴充套件以提供更多(或更少)的處理能力。•每個主題分為分割槽 —— 單獨的訊息塊,具有一個分割槽內的順序保證。可以根據需要配置分割槽的數量。•每條訊息由主題名稱、分割槽號和偏移量唯一標識。•偏移量是從主題和分割槽存在的開始位置的訊息編號。•提交的偏移量是儲存在Kafka中的偏移量,用於在消費者崩潰或重新啟動後恢復處理。可以將其視為檢查點。•消費者位置是消費者內部使用的偏移量,用於跟蹤下一次輪詢時要獲取的訊息。
為什麼使用 Apache Kafka?
Kafka是一個開源專案。它具有分散式、彈性的架構,並且容忍故障(您可以對其進行修補和維護,而無需關閉整個系統)。Kafka具有橫向擴充套件性。該專案旨在提供一個統一的、高吞吐量、低延遲(低於10毫秒)的平臺,用於處理實時資料流。
Kafka被許多組織(如Netflix、Uber、LinkedIn等)和IT團隊用作訊息系統、活動跟蹤系統、流處理、微服務釋出/訂閱、應用程式日誌收集、度量資料收集、解耦系統依賴關係以及與其他大資料技術整合。
•Netflix使用Kafka實時應用建議,當使用者在他們的應用上觀看電視節目時。•Uber使用Kafka實時收集使用者和行程資料,以計算和預測需求以及價格漲跌情況。這就是為什麼您的Uber應用中相同行程的價格隨時都會發生變化。
Kafka是一個非常酷的平臺。我們可以使用Docker輕鬆在您的膝上型電腦上設定單節點Kafka叢集。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70027827/viewspace-2992981/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server 2008事件處理系統簡介LSSQLServer事件
- Kafka流處理內幕詳解Kafka
- Kafka和Redis如何解決流處理挑戰KafkaRedis
- Kafka簡介Kafka
- kafka 簡介Kafka
- kafka之一:kafka簡介Kafka
- Kafka ETL 的應用及架構解析|告別 Kafka Streams,讓輕量級流處理更加簡單Kafka架構
- 大資料流處理:Flume、Kafka和NiFi對比大資料KafkaNifi
- Java的簡單理解(22)---處理流Java
- 事件處理事件
- Kafka如何實現實時流處理 Part 1 - André MeloKafka
- 事件流與事件溯源事件
- 微處理器效能簡介(8086)
- pythonPIL影像處理庫簡介(一)Python
- Kafka 簡介 & 整合 SpringBootKafkaSpring Boot
- Apache-Kafka簡介ApacheKafka
- Spark Streaming,Flink,Storm,Kafka Streams,Samza:如何選擇流處理框架SparkORMKafka框架
- Vue 3指令與事件處理Vue事件
- JavaSwing 事件處理Java事件
- vue事件處理Vue事件
- Flutter | 事件處理Flutter事件
- JavaScript事件處理JavaScript事件
- React事件處理React事件
- Laravel 實現 Kafka 訊息推送與接收處理LaravelKafka
- Streams 流處理
- 介紹下VNPY的Event事件處理,和建立新事件型別事件型別
- 人工智慧--自然語言處理簡介人工智慧自然語言處理
- MPP(大規模並行處理)簡介並行
- react之事件處理React事件
- 雲端計算情報局預告|告別 Kafka Streams,讓輕量級流處理更加簡單Kafka
- 三種大資料流處理框架選擇比較:Apache Kafka流、Apache Spark流和Apache Flink - quora大資料框架ApacheKafkaSpark
- 事件分發之View事件處理事件View
- 簡析5G時代的MART流處理
- nodejs事件和事件迴圈簡介NodeJS事件
- 大資料爭論:批處理與流處理的C位之戰大資料
- kafka offset 過期處理策略Kafka
- 事件流平臺Kafka、Pulsar和RabbitMQ比較 - Picnic事件KafkaMQ
- 博文推薦|使用 Apache Pulsar 和 Scala 進行事件流處理Apache事件