全網最全圖解Kafka適用場景

消息系統

消息系統被用于各種場景,如解耦數據生產者,緩存未處理的消息。Kafka 可作為傳統的消息系統的替代者,與傳統消息系統相比,kafka有更好的吞吐量、更好的可用性,這有利于處理大規模的消息。

根據經驗,通常消息傳遞對吞吐量要求較低,但可能要求較低的端到端延遲,并經常依賴kafka可靠的durable機制。

在這方面,Kafka可以與傳統的消息傳遞系統(ActiveMQ 和RabbitMQ)相媲美。

存儲系統

寫入到kafka中的數據是落地到了磁盤上,并且有冗余備份,kafka允許producer等待確認,通過配置,可實現直到所有的replication完成復制才算寫入成功,這樣可保證數據的可用性。

Kafka認真對待存儲,并允許client自行控制讀取位置,你可以認為kafka是-種特殊的文件系統,它能夠提供高性能、低延遲、高可用的日志提交存儲。

日志聚合

日志系統一般需要如下功能:日志的收集、清洗、聚合、存儲、展示。Kafka常用來替代其他日志聚合解決方案。

和Scribe、Flume相比,Kafka提供同樣好的性能、更健壯的堆積保障、更低的端到端延遲。 日志會落地,導致kafka做日志聚合更昂貴。

kafka可實現日志的:

  • 清洗(需編碼)
  • 聚合(可靠但昂貴,因需落地磁盤)
  • 存儲

ELK是現在比較流行的日志系統。在kafka的配合 下才是更成熟的方案,kafka在ELK技術棧中,主要起到buffer的作用,必要時可進行日志的匯流。

系統監控與報警

與日志分析系統類似,我們需要收集系統指標以進行監控和故障排除。 區別在于指標是結構化數據,而日志是非結構化文本。指標數據發送到 Kafka 并在 Flink 中聚合。聚合數據由實時監控儀表板和警報系統(例如 PagerDuty)使用。

Commit Log

Kafka 可充當分布式系統的一種外部提交日志。日志有助于在節點之間復制數據,并充當故障節點恢復數據的重新同步機制。

Kafka 中的日志壓縮功能有助于支持這種用法。

跟蹤網站活動 - 推薦系統

kafka的最初始作用就是,將用戶行為跟蹤管道重構為一組實時發布-訂閱源。 把網站活動(瀏覽網頁、搜索或其他的用戶操作)發布到中心topics中,每種活動類型對應一個topic。基于這些訂閱源,能夠實現一系列用例,如實時處理、實時監視、批量地將Kafka的數據加載到Hadoop或離線數倉系統,進行離線數據處理并生成報告。

每個用戶瀏覽網頁時都生成了許多活動信息,因此活動跟蹤的數據量通常非常大。(Kafka實際應用)

像亞馬遜這樣的電子商務網站使用過去的行為和相似的用戶來計算產品推薦。 下圖展示了推薦系統的工作原理。 Kafka 傳輸原始點擊流數據,Flink 對其進行處理,模型訓練則使用來自數據湖的聚合數據。

img這使得能夠持續改進每個用戶的推薦的相關性。 Kafka 的另一個重要用例是實時點擊流分析。

流處理 - kafka stream API

Kafka社區認為僅僅提供數據生產、消費機制是不夠的,他們還要提供流數據實時處理機制

從0.10.0.0開始, Kafka通過提供Strearms API來提供輕量,但功能強大的流處理。實際上就是Streams API幫助解決流引用中一些棘手的問題,比如:

  • 處理無序的數據
  • 代碼變化后再次處理數據
  • 進行有狀態的流式計算

Streams API的流處理包含多個階段,從input topics消費數據,做各種處理,將結果寫入到目標topic, Streans API基于kafka提供的核心原語構建,它使用kafka consumer、 producer來輸入、輸出,用Kfka來做狀態存儲。

流處理框架: flink、spark streaming、Storm本是正統流處理框架,Kafka在流處理更多扮演流存儲角色。

CDC( Change data capture,變更數據捕獲)

  • CDC將數據庫變化流式傳輸到其他系統,以進行復制或緩存/索引更新
  • Kafka 還是構建data pipeline的絕佳工具,使用它從各種來源獲取數據、應用處理規則并將數據存儲在倉庫、數據湖或數據網格中
  • 如下,事務日志發送到 Kafka 并由 ElasticSearch、Redis 和輔助數據庫攝取。

img

系統遷移

升級遺留服務具有挑戰性:

  • 舊語言
  • 復雜邏輯
  • 缺乏測試

可利用MQ降低風險。

為升級訂單服務,更新舊的訂單服務以消費來自 Kafka 的輸入并將結果寫入 ORDER topic。新訂單服務使用相同的輸入并將結果寫入 ORDERNEW topic:

Reconciliation調節服務比較 ORDER 和 ORDERNEW。如果它們相同,則新服務通過測試。

事件溯源

如果將事件作為系統中的一等公民(即事實來源),那存儲應用程序的狀態就是一系列事件,系統中的其他所有內容都可根據這些持久且不可變的事件重新計算。

事件溯源就是捕獲一系列事件中狀態的變化。通常使用 Kafka 作為主要事件存儲。如果發生任何故障、回滾或需要重建狀態,可隨時重新應用 Kafka 中的事件。

本文由博客一文多發平臺 OpenWrite 發布!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/166704.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/166704.shtml
英文地址,請注明出處:http://en.pswp.cn/news/166704.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

淘寶、1688代購系統;微信代購小程序,代購系統源代碼,PHP前端源碼演示

電商價格數據監測接口、品牌商品控價接口、商品數據分析接口和比價搜索API接口都是非常實用的電商接口服務,下面我將為您詳細介紹這些接口的用途和使用方式。 1.電商價格數據監測接口(注冊獲取請求調用key) taobao.item_get-獲得淘寶商品詳…

ubuntu環境刪除qtcreator方法

文章目錄 方法1方法2方法3參考不同的安裝方法,對應不同的刪除方法 方法1 apt-get或者dpkg 方法2 QtCreatorUninstaller 方法3 MaintenanceTool

2023亞太杯數學建模C題思路分析 - 我國新能源電動汽車的發展趨勢

1 賽題 問題C 我國新能源電動汽車的發展趨勢 新能源汽車是指以先進技術原理、新技術、新結構的非常規汽車燃料為動力來源( 非常規汽車燃料指汽油、柴油以外的燃料),將先進技術進行汽車動力控制和驅動相結 合的汽車。新能源汽車主要包括四種類型&#x…

js中forEach、filter、map的區別

forEach、filter、map都可以遍歷數組,那么三者有什么區別? 區別: forEach遍歷數組全部元素,利用回調函數對數組進行操作,不會返回新的數組,return只用于控制循環是否跳出當前循環; filter返回一個新的數組&#xff0…

全新Self-RAG框架亮相,自適應檢索增強助力超越ChatGPT與Llama2,提升事實性與引用準確性

全新Self-RAG框架亮相,自適應檢索增強助力超越ChatGPT與Llama2,提升事實性與引用準確性 1. 基本思想 大型語言模型(LLMs)具有出色的能力,但由于完全依賴其內部的參數化知識,它們經常產生包含事實錯誤的回答,尤其在長尾知識中。 為了解決這一問題,之前的研究人員提出了…

c語言編程題經典100例——(16~20例)

1,將一個字符串轉換為整數 在C語言中,可以使用庫函數 atoi() 將字符串轉換為整數。 atoi() 函數接受一個字符串作為參數,并返回其對應的整數。 以下是一個示例代碼,演示如何使用 atoi() 函數將字符串轉換為整數: #i…

Linux下安裝python3步驟:

1.下載Python3源碼 你需要從Python官網下載Python3的源碼包。本文以Python 3.9.9為例。你可以使用wget命令來下載源碼包到你的Linux主目錄中: wget https://www.python.org/ftp/python/3.9.9/Python-3.9.9.tgz2.編譯和安裝Python3 下載好源碼包后,你需要解壓它&…

【LeetCode:2824. 統計和小于目標的下標對數目 | 模擬+二分】

🚀 算法題 🚀 🌲 算法刷題專欄 | 面試必備算法 | 面試高頻算法 🍀 🌲 越難的東西,越要努力堅持,因為它具有很高的價值,算法就是這樣? 🌲 作者簡介:碩風和煒,…

ubuntu22.04中ros2 安裝rosbridge

ros2 啟動rosbridge: 要啟動ROS2中的rosbridge,需要先安裝ROS2的rosbridge_suite軟件包。使用以下命令安裝: 更新過可忽略 sudo apt-get update安裝命令 sudo apt-get install ros--rosbridge-suite 注意: 將替換為正在使用的R…

深度學習圖像風格遷移 - opencv python 計算機競賽

文章目錄 0 前言1 VGG網絡2 風格遷移3 內容損失4 風格損失5 主代碼實現6 遷移模型實現7 效果展示8 最后 0 前言 🔥 優質競賽項目系列,今天要分享的是 🚩 深度學習圖像風格遷移 - opencv python 該項目較為新穎,適合作為競賽課題…

uniapp高德、百度、騰訊地圖配置 SHA1

uniapp高德、百度、騰訊地圖配置 SHA1 當winr彈出cmd彈框后輸入 keytool -list -v -keystore debug.keystore 顯示keytool 不是內部或外部命令,也不是可運行的程序或批處理文件。可以先看看是否有下載jdk且配置了環境變量,具體操作如下:keyto…

please upgrade numpy version to >=1.20

升級 upgrade numpy_升級numpy-CSDN博客 pip install numpy --upgrade 沒有pip conda install numpy --upgrade 會報錯 conda list numpy來查看numpy版本 似乎這個numpy要看numpy-base這個 似乎沒有pip

【開源】基于JAVA的計算機機房作業管理系統

項目編號: S 017 ,文末獲取源碼。 \color{red}{項目編號:S017,文末獲取源碼。} 項目編號:S017,文末獲取源碼。 目錄 一、摘要1.1 項目介紹1.2 項目錄屏 二、功能模塊2.1 登錄注冊模塊2.2 課程管理模塊2.3 課…

K8S如何部署ActiveMQ(單機、集群)

前言 大家好,在今天的討論中,我們將深入研究如何將ActiveMQ遷移到云端,以便更好地利用Kubernetes的容器調度和資源管理能力,確保ActiveMQ的高可用性和可擴展性。 ActiveMQ是Apache開源組織推出的一款開源的、完全支持JMS1.1和J2…

申請二級域名

1、登錄騰訊云 騰訊云 產業智變云啟未來 - 騰訊 (tencent.com) 2、進入我的域名,點擊主域名 3、點擊前往DNSPod管理 4、點擊我的域名,然后點擊主域名 5、點擊添加記錄,進行添加二級域名信息 6、添加相應二級域名信息 7、添加后需要進行驗證…

系列一、Spring Framework

一、Spring Framework 1.1、概述 Spring是一個輕量級的開源的JavaEE框架;Spring可以解決企業應用開發的復雜性;Spring有兩個核心部分:IOC和AOP ① IOC:控制反轉,把創建對象的過程交給Spring進行管理; ② …

PSP - 從頭搭建 抗原類別 (GPCR) 的 蛋白質結構預測 項目流程

歡迎關注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/134595717 GPCRs(G Protein-Coupled Receptors,G蛋白偶聯受體),又稱為7次跨膜受體,是細…

界面組件Telerik UI for WinForms中文教程 - 創建明暗模式的桌面應用

黑暗模式現在在很多應用程序中都挺常見的,但如何在桌面應用程序中實現它呢?這很簡單,本文將為大家介紹如何使用一個類和命令行調用來實現! Telerik UI for WinForms擁有適用Windows Forms的110多個令人驚嘆的UI控件。所有的UI fo…

Appium 全新 2.0 全新跨平臺生態,版本特性搶鮮體驗!

關于Appium V2 Appium V2 beta版本在2021年發布,從2022年1月1號開始,Appium核心團隊不會再維護Appium 1.x版本了,所有近期官方發布的平臺驅動(如Android平臺的UIAutomator,IOS平臺的XCUITest)不再兼容Appi…

shrio----(1)基礎

文章目錄 前言 一、Shrio1、什么是shiro2、為什么使用shrio 二、主要類2.1、Subject2.2、SecurityManager2.3、Realms 三、認證授權3.1、認證(Authentication)3.2、授權(authorization)四、入門示例參考文章 前言 簡單入門介紹 一、Shrio http://shir…