1-Kafka介紹及常見應用場景

Kafka 介紹

Apache Kafka 是一個開源的 分布式流處理平臺,最初由 LinkedIn 開發,后捐贈給 Apache 軟件基金會。它被設計用于高吞吐量、低延遲、可水平擴展地處理實時數據流。官網地址是:https://kafka.apache.org/

以下是 Kafka 的核心介紹:

核心概念

消息系統 (Messaging System)
Kafka 充當生產者和消費者之間的消息中間件,解耦系統,確保可靠的數據傳遞。

流處理平臺 (Stream Processing)
支持實時處理數據流(如過濾、轉換、聚合)。

存儲系統 (Storage System)
數據可持久化存儲(默認保留7天,可配置),支持故障恢復。

核心組件

組件作用
Producer 生產者向 Kafka 推送數據(如日志、事件)
Consumer 消費者從 Kafka 拉取數據并進行處理
Broker Kafka 服務器節點組成集群,負責存儲和傳遞消息
Topic 邏輯消息分類(如 user_activity)生產者按 Topic 發送消息
Partition Topic 的分區(物理分片)實現并行處理和水平擴展。每個分區內消息有序
Replica 分區的副本(Leader 處理讀寫,Follower 同步數據)保障高可用
ZooKeeper管理集群元數據、Broker 狀態和選舉(Kafka 3.0+ 逐步移除依賴)

核心特性

  1. 超高吞吐量 & 低延遲

  • 吞吐量:單機每秒可處理 數十萬條消息(輕松達百萬級/秒),集群可擴展至 PB/天 級別。
  • 延遲:消息從生產到消費可控制在 毫秒級(通常 2~10ms)。
  • 技術支撐:
    ? 順序磁盤 I/O(避免隨機尋址)
    ? 零拷貝(Zero-Copy)技術減少內核態數據復制
    ? 批量壓縮(Snappy、LZ4)
  1. 持久化存儲與可靠性

  • 持久化:所有消息直接寫入磁盤(非內存緩存),支持 TB 級數據保留(可配置保留策略)。
  • 高可靠:
    ? 副本機制(Replication):每個分區多副本存儲(默認 3 副本)
    ? ISR(In-Sync Replicas) 機制保障數據一致性
    ? 生產者可配置 acks=all 確保數據寫入所有副本后才確認
  1. 水平擴展能力

  • 無縫擴容:
    ? 通過增加 Broker 節點擴展集群容量
    ? 通過增加 Topic 分區數提升并行度
  • 負載均衡:分區自動均衡到集群所有節點,無需人工干預。
  1. 分布式架構與高容錯

  • 去中心化:無單點瓶頸,Broker 節點對等。
  • 故障自愈:
    ? Leader 分區故障時,Follower 自動選舉為新 Leader
    ? 消費者組自動重平衡(Rebalance)
    ? 數據副本保障節點宕機時 零數據丟失
  1. 多租戶與生態整合

  • 多租戶支持:通過認證(SASL/SSL)和配額(Quotas)實現資源隔離。
  • 豐富生態:
    ? Kafka Connect:快速集成數據庫、ES、S3 等外部系統
    ? Kafka Streams:輕量級流處理庫(無需額外集群)
    ? Schema Registry:統一管理 Avro/Protobuf 消息格式
  1. 消費者組模型靈活性

  • 發布/訂閱 & 隊列模式:
    ? 廣播模式:多個消費者組獨立消費全量數據
    ? 隊列模式:同組內消費者分區負載均衡(每條消息僅被組內一個消費者處理)
  • 位移管理:消費者可手動/自動提交消費進度(Offset),支持重播歷史數據。
  1. 精準一次語義(Exactly-Once Semantics, EOS)

  • 跨系統一致性:通過 Kafka Streams API 或 事務型生產者(idempotence=true + 事務)實現:
    ? 生產端:避免消息重復寫入
    ? 消費端:確保“處理 + 提交 Offset”原子性

典型應用場景

  1. 實時數據管道
    將數據從源系統(數據庫、日志)同步到數據倉庫(如 Hadoop、Snowflake)。

  2. 事件驅動架構
    微服務間通過事件通信(如訂單支付觸發庫存更新)。

  3. 日志聚合
    集中收集分布式系統的日志(替代 ELK 中的 Logstash)。

  4. 實時流處理
    結合 Kafka Streams 或 Flink 實時分析用戶行為、監控指標。

  5. 消息隊列
    替代傳統 MQ(如 RabbitMQ),尤其適用于大數據量場景。

版本與生態

主流版本:Kafka 3.x(已移除 ZooKeeper 依賴,使用 KRaft 共識協議)。

與其他消息隊列的對比優勢

特性KafkaRabbitMQ / RocketMQ
吞吐量????? (百萬級/秒)?? (萬級/秒)
數據持久化????? (磁盤存儲 + 多副本)?? (內存為主,持久化性能低)
水平擴展????? (分區 + Broker 動態擴展)?? (集群擴展復雜)
消息回溯????? (支持任意時間點重消費)? (需手動備份)
流處理能力???? (原生 Kafka Streams 支持)? (需額外工具)

參考:
deepseek
B站項樺瑾Kafka介紹

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

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

相關文章

CH9121T電路及配置詳解

目錄1. CH9121T簡介2. 原理圖及接口2.1 參考電路2.2 CH9121T評估板2.3 差分端口2.4 網口燈顯示2.5 晶振2.6 其他接口3. 使用手冊及說明3.1 配置介紹3.2 默認參數3.3 串口波特率3.4 配置指令3.5 應用示例1. CH9121T簡介 CH9121 是一款網絡串口透傳芯片,自帶 10/100M…

科研數據可視化核心技術:基于 AI 與 R 語言的熱圖、火山圖及網絡圖繪制實踐指南

在學術研究競爭日趨激烈的背景下,高質量的數據可視化已成為科研成果呈現與學術傳播的關鍵要素。據統計,超過 60% 的學術稿件拒稿原因與圖表質量存在直接關聯,而傳統繪圖工具在處理組學數據、復雜關聯數據時,普遍存在效率低下、規范…

Windows體驗macOS完整指南

一、虛擬機安裝macOS專業方案1. 環境準備階段硬件檢測:進入BIOS(開機時按Del/F2鍵)確認開啟VT-x/AMD-V虛擬化選項建議配置:i5十代以上CPU/16GB內存/256GB SSD軟件準備:官網下載VMware Workstation 17 Pro獲取Unlocker補…

【普及/提高?】洛谷P1577 ——切繩子

見:P1577 切繩子 - 洛谷 題目描述 有 N 條繩子,它們的長度分別為 Li?。如果從它們中切割出 K 條長度相同的繩子,這 K 條繩子每條最長能有多長?答案保留到小數點后 2 位(直接舍掉 2 位后的小數)。 輸入格式 第一行兩個整數 N …

imx6ull-裸機學習實驗16——I2C 實驗

目錄 前言 I2C簡介 基本特性?? I2C 協議 起始位 停止位 數據傳輸 應答信號 I2C 寫時序 I2C 讀時序 I.MX6U I2C 簡介 寄存器 地址寄存器I2Cx_IADR(x1~4) 分頻寄存器I2Cx_IFDR 控制寄存器I2Cx_I2CR 狀態寄存器I2Cx_I2SR 數據寄存器I2Cx_I2DR AP3216C 簡介 …

【TCP/IP】5. IP 協議

5. IP 協議5. IP 協議5.1 概述5.2 IP 數據報格式5.3 無連接數據報傳輸5.3.1 首部校驗5.3.2 數據分片與重組5.4 IP 數據報選項5.4.1 選項格式5.4.2 選項類型5.5 IP 模塊的結構本章要點5. IP 協議 5.1 概述 IP 協議是 TCP/IP 協議簇的核心協議,位于網絡層&#xff0…

Linux 服務器挖礦病毒深度處理與防護指南

在 Linux 服務器運維中,挖礦病毒是常見且危害較大的安全威脅。此類病毒通常會隱蔽占用大量 CPU 資源進行加密貨幣挖礦,導致服務器性能驟降、能耗激增,甚至被黑客遠程控制。本文將從病毒特征識別、應急處理流程、深度防護措施三個維度&#xf…

MySQL數據表設計 系統的營銷功能 優惠券、客戶使用優惠券的設計

系統的營銷功能營銷功能概述:系統的營銷功能主要是:市場活動管理、營銷自動化、銷售線索管理以及數據分析和報告等。?ToC?(Consumer):面向個人消費者,滿足日常消費需求。?優惠券的種類:ToC的…

讓 3 個線程串行的幾種方式

1、通過join()的方式 子線程調用join()的時候,主線程等待子線程執行完再執行。如果讓多個線程順序執行的話,那么需要他們按順序調用start()。/*** - 第一個迭代(i0):* 啟動線程t1 -> 然后調用t1.join()。* …

在 Vue 項目中關閉 ESLint 規則

在 Vue 2 項目中關閉 ESLint 規則有以下幾種方法,根據您的需求選擇合適的方式: 1. 完全禁用 ESLint 修改 vue.config.js(推薦) module.exports {// 關閉 ESLintlintOnSave: false }或修改 package.json {"scripts": {&…

電腦息屏工具,一鍵黑屏超方便

軟件介紹 今天為大家推薦一款實用的PC端屏幕管理工具——CloseDsp。這款"息屏小能手"能一鍵關閉顯示器,解決各種場景下的屏幕管理需求。 核心功能 CloseDsp最突出的特點是能瞬間關閉顯示器屏幕。只需點擊"關閉顯示器"按鈕,屏幕…

嵌入式調試LOG日志輸出(以STM32為例)

引言在嵌入式系統開發中,調試是貫穿整個生命周期的關鍵環節。與傳統PC端程序不同,嵌入式設備資源受限(如內存、存儲、處理器性能),且運行環境復雜(無顯示器、鍵盤),傳統的斷點調試或…

Zephyr的設備驅動模型

默認配置默認配置 boards/arm/nucleo_f401re/ ├── nucleo_f401re.dts ← 板卡設備樹主入口 ├── nucleo_f401re_defconfig ← 默認 Kconfig 配置 ├── board.cmake ← CMake 構建入口overlay1.新增加驅動需要修改對應板的設備樹文件&#xf…

Mysql字段沒有索引,通過where x = 3 for update是使用什么級別的鎖

沒有索引時,FOR UPDATE 會鎖住整個表 現在,你正在一本一本地翻看所有書,尋找“維修中”的書,并且你對管理員說:“在我清點和修改完之前,別人不能動這些書,也不能往這個范圍里加新書!…

TCP-與-UDP-協議詳解:原理、區別與應用場景全解析

TCP 與 UDP 協議詳解:原理、區別與應用場景全解析 在日常使用網絡的過程中,我們經常聽到 TCP 和 UDP 這兩個詞。你打開網頁、發送消息、觀看視頻,背后都在使用 TCP 或 UDP 進行數據傳輸。那么這兩個協議到底是怎么工作的?它們之間…

GitHub信息收集

目錄 簡介 一、入門搜索技巧 1. 基本關鍵詞搜索 2. 文件類型限定搜索 3. 用戶/組織定向搜索 二、精準定位技巧 1. 組合搜索條件 2. 排除干擾結果 3. 路徑限定搜索 三、防御建議 四、法律與道德提醒 簡介 GitHub作為全球最大的代碼托管平臺,存儲著數十億…

由 DB_FILES 參數導致的 dg 服務器無法同步問題

由 DB_FILES 參數導致的 dg 服務器無法同步問題 用戶反映,dg 服務器數據從昨晚(7月8日)開始停止同步。 連接服務器發現沒有 mrp 進程,并且 OPEN_MODE 參數也不正確。具體情況如下所示: SQL> select process, status…

Go語言泛型-泛型對代碼結構的優化

在Go語言中,Go泛型-泛型對代碼結構的優化部分主要探討了泛型如何幫助我們優化代碼結構、減少重復代碼,并提高代碼的可維護性、可讀性和復用性。以下是詳細內容: 一、引言 Go 1.18 引入了泛型,極大地提高了語言的靈活性。泛型使得我們可以編寫更加通用、可復用且類型安全的…

【1-快速上手】

文章目錄前言簡介什么是 Konva?安裝 Konva概述它是如何工作的?基本形狀樣式事件拖放濾鏡動畫選擇器序列化與反序列化性能前言 結合項目實際業務需求,在 Fabric、Konva 等圖形化框架中,我選擇了性能表現好的 Konva。首先去學習官方…

【LeetCode】209. 長度最小的子數組(前綴和 + 二分)

【LeetCode】209. 長度最小的子數組(前綴和 二分)題目描述前綴和二分優化前綴和總結二分總結題目描述 題目鏈接:【LeetCode】209. 長度最小的子數組(前綴和 二分) 給定一個含有 n 個整數的數組和一個整數 target。…