Kafka 是一個開源的分布式流式平臺,它可以處理大量的實時數(shù)據(jù),并提供高吞吐量,低延遲,高可靠性和高可擴展性。Kafka 的核心組件包括生產者(Producer),消費者(Consumer),主題(Topic),分區(qū)(Partition),副本(Replica),日志(Log),偏移量(Offset)和代理(Broker)。Kafka 的主要特點有:
Kafka 最初是為分布式系統(tǒng)中海量日志處理而設計的。它可以通過持久化功能將消息保存到磁盤直到過期,并讓消費者按照自己的節(jié)奏提取消息。與它的前輩不同(RabbitMQ、ActiveMQ),Kafka 不僅僅是一個消息隊列,它還是一個開源的分布式流處理平臺。
Kafka 作為一款熱門的消息隊列中間件,具備高效可靠的消息異步傳遞機制,主要用于不同系統(tǒng)間的數(shù)據(jù)交流和傳遞。下面給大家介紹一下 Kafka 在分布式系統(tǒng)中的 7 個常用應用場景。
日志收集是 Kafka 最初的設計目標之一,也是最常見的應用場景之一。可以用 Kafka 收集各種服務的日志,如 web 服務器、服務器日志、數(shù)據(jù)庫服務器等,通過 Kafka 以統(tǒng)一接口服務的方式開放給各種消費者,例如 Flink、Hadoop、Hbase、ElasticSearch 等。這樣可以實現(xiàn)分布式系統(tǒng)中海量日志數(shù)據(jù)的處理與分析。
下圖是一張典型的 ELK(Elastic-Logstash-Kibana)分布式日志采集架構。
流式處理是 Kafka 在大數(shù)據(jù)領域的重要應用場景之一。可以用 Kafka 作為流式處理平臺的數(shù)據(jù)源或數(shù)據(jù)輸出,與 Spark Streaming、Storm、Flink 等框架進行集成,實現(xiàn)對實時數(shù)據(jù)的處理和分析,如過濾、轉換、聚合、窗口、連接等。
淘寶、京東這樣的線上商城網站會通過用戶過去的一些行為(點擊、瀏覽、購買等)來和相似的用戶計算用戶相似度,以此來給用戶推薦可能感興趣的商品。
下圖展示了常見推薦系統(tǒng)的工作流程。
這樣推薦系統(tǒng)就能夠持續(xù)改進對每個用戶的推薦相關性。
Kafka 常用于傳輸監(jiān)控指標數(shù)據(jù)。例如,大一點的分布式系統(tǒng)中有數(shù)百臺服務器的 CPU 利用率、內存使用情況、磁盤使用率、流量使用等指標可以發(fā)布到 Kafka。然后,監(jiān)控應用程序可以使用這些指標來進行實時可視化、警報和異常檢測。
下圖展示了常見監(jiān)控報警系統(tǒng)的工作流程。
CDC(數(shù)據(jù)變更捕獲)用來將數(shù)據(jù)庫中的發(fā)生的更改以流的形式傳輸?shù)狡渌到y(tǒng)以進行復制或者緩存以及索引更新等。
Kafka 中有一個連接器組件可以支持 CDC 功能,它需要和具體的數(shù)據(jù)源結合起來使用。數(shù)據(jù)源可以分成兩種:源數(shù)據(jù)源( data source ,也叫作“源系統(tǒng)”)和目標數(shù)據(jù)源( Data Sink ,也叫作“目標系統(tǒng)”)。Kafka 連接器和源系統(tǒng)一起使用時,它會將源系統(tǒng)的數(shù)據(jù)導人到 Kafka 集群。Kafka 連接器和目標系統(tǒng)一起使用時,它會將 Kafka 集群的數(shù)據(jù)導人到目標系統(tǒng)。
下圖展示了常見 CDC 系統(tǒng)的工作流程。
Kafka 可以用來作為老系統(tǒng)升級到新系統(tǒng)過程中的消息傳遞中間件(Kafka),以此來降低遷移風險。
例如,在一個老系統(tǒng)中,有購物車 V1、訂單 V1、支付 V1 三個服務,現(xiàn)在我們需要將訂單 V1 服務升級到訂單 V2 服務。
下圖展示了老系統(tǒng)遷移到新系統(tǒng)的工作流程。
事件溯源是 Kafka 在微服務架構中的重要應用場景之一。可以用 Kafka 記錄微服務間的事件,如訂單創(chuàng)建、支付完成、發(fā)貨通知等。這些事件可以被其他微服務訂閱和消費,實現(xiàn)業(yè)務邏輯的協(xié)調和同步。
簡單來說事件溯源就是將這些事件通過持久化存儲在 Kafka 內部。如果發(fā)生任何故障、回滾或需要重放消息,我們都可以隨時重新應用 Kafka 中的事件。
Kafka 最常見的應用場景就是作為消息隊列。Kafka 提供了一個可靠且可擴展的消息隊列,可以處理大量數(shù)據(jù)。
Kafka 可以實現(xiàn)不同系統(tǒng)間的解耦和異步通信,如訂單系統(tǒng)、支付系統(tǒng)、庫存系統(tǒng)等。在這個基礎上 Kafka 還可以緩存消息,提高系統(tǒng)的可靠性和可用性,并且可以支持多種消費模式,如點對點或發(fā)布訂閱。
本文鏈接:http://www.www897cc.com/showinfo-26-14822-0.htmlKafka 在分布式系統(tǒng)中的七大應用場景
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: 十個容易被忽視的FastAPI實用功能