生產者種類多,資料格式不同,資料來源眾多,消費者種類多:使用生產者和消費者模式進行解耦 消費者無法依據自身處理情況輪詢拉取資料:提供資料持久化,適配多個消費者 訊息系統無法橫向擴充套件:系統隨流量進行很想擴充套件,使用訊息批次加壓縮的模式提高訊息傳輸效率通過主題對訊息進行分類 配置項
partition:分割槽數 設定日誌保留的時間、每個分割槽保留的日誌大小 每個日誌片段的大小,多長時間關閉乙個片段 單個訊息的大小乙個主題被分割成了多個分割槽 訊息以追加的方式寫入分割槽,先進先出的佇列模式 分割槽可以再不同的伺服器上 乙個分割槽可以分配到乙個或者多個broker上,乙個為分割槽首領,其他為複製(提高可靠性) 首領副本負責和生產者消費者進行互動,而副本從首領處拷貝保持同步包含:主題、分割槽、訊息建、訊息如果沒有訊息鍵生產者將訊息均勻的分配到不同的分割槽上 如果有訊息鍵,同乙個訊息鍵的訊息寫入相同的分割槽,使用者可以自定義分割槽器
配置項配置broker的位址 鍵、值的序列化類 緩衝區大小 生產者在收到伺服器響應前可以傳送多少個訊息(訊息保序的關鍵,一次只發乙個訊息給broker,確保每個訊息都能收到)為每乙個分割槽維護乙個offset,記錄讀取訊息的位置,位置記錄在zk中 通過訂閱主題,主動拉取訊息offset 配置項:
是否自動提交 指定分割槽分配策略 在offset無效時讀取的策略通過監聽,在發生在均衡的時候可以關閉一些資源(資料庫),提交offset包含乙個或者多個消費者 群組保證每個主題分割槽只能被乙個消費者消費 每個群組會消費每個主題的所有分割槽kafka服務端,用來存放生產者產生的資料,為資料設定偏移量 響應消費者讀取資料的請求 broker的資料不會立刻消失
配置主題保留一段時間或者一定檔案大小的資料 配置主題僅保留最後乙個帶有特定鍵的訊息 配置:
id:集群中唯一的id port:kafka的port zk位址 log.dirs:存放日誌的位置 設定初始化時的執行緒數:和啟動速度有關 建立主題的時機第一步選舉出乙個broker作為控制器在zk上註冊乙個自己的節點,同時監聽zookeeper的/brokers/ids路徑下broker的變化情況。刪除時會在zookeeper的/brokers/ids中刪除節點,但是自己的broker id節點不會刪除 在zk上/controller嘗試建立臨時節點,如果成功成為控制器,否則監聽控制器節點的變化乙個主題的分割槽數量消費者群組的消費者數量,有消費者空閒 乙個主題的分割槽數量=消費者群組的消費者數量,乙個消費者對應乙個分割槽 乙個主題的分割槽數消費者群組的消費者數量,多個分割槽的訊息在乙個消費者上處理訊息消費後向特定的topic傳送訊息,將offset儲存在zk中。如果發生分割槽在均衡,這樣可以用kafka上獲取到offset,使得消費者無狀態 可以通過seek方法指定偏移量和分割槽
Kafka工作原理簡要概述
流程圖 詞彙 topic 主題 producer 生產者 consumer 消費者 consumer group 消費者組 offset 偏移量 follower 副本 要點概述 kafka是以topic進行分類的,由producer生產資料傳送到topic,再被consumer進行消費,同時off...
HTML 簡要概述
說實在的,這門語言的確不需要太多或太詳細的篇幅來大書特書。掌握個大概,知道些特點及特性也就差不多了。人腦不是電腦,不需要死記硬背許多的屬性和值,有一本幫助手冊在手,勝過千言萬語。什麼是 html?html 是用來描述網頁的一種語言。html 指的是超文字標記語言 hypertextmarkuplan...
KAFKA基礎(一) KAFKA 概述
kafka 是乙個分布式的基於發布 訂閱模式的訊息佇列 message queue 主要應用於大資料實時處理領域。2.1傳統訊息佇列的應用場景 使用訊息佇列的好處 1 解耦 允許你獨立的擴充套件或修改兩邊的處理過程,只要確保它們遵守同樣的介面約束。2 可恢復性 系統的一部分元件失效時,不會影響到整個...