kafka是一種高吞吐量的分布式發布訂閱訊息系統,它可以處理消費者規模的**中的所有動作流資料。 這種動作(網頁瀏覽,搜尋和其他使用者的行動)是在現代網路上的許多社會功能的乙個關鍵因素。 這些資料通常是由於吞吐量的要求而通過處理日誌和日誌聚合來解決。 對於像hadoop一樣的日誌資料和離線分析系統,但又要求實時處理的限制,這是乙個可行的解決方案。kafka的目的是通過hadoop的並行載入機制來統一線上和離線的訊息處理,也是為了通過集群來提供實時的訊息。
1)每乙個topic被切分為多個partitions
2)消費者數目少於或等於partition的數目
3)broker group中的每乙個broker儲存topic的乙個或多個partitions
4)consumer group中的僅有乙個consumer讀取topic的乙個或多個partitions,並且是唯一的consumer
1)當集群中有broker掛掉的情況,系統可以主動地使replication提供服務
2)系統預設設定每乙個topic的replication係數為1,可以在建立topic時單獨設定
3)replication的基本單位時topic的partition
4)所有的讀和寫都從leader進,followers只是作為備份
5)follower必須能夠及時複製leader的資料
乙個典型的kafka集群中包含若干producer(可以是web前端fet,或者是伺服器日誌等),若**roker(kafka支援水平擴充套件,一般broker數量越多,集群吞吐率越高),若干consumergroup,以及乙個zookeeper集群。kafka通過zookeeper管理kafka集群配置:選舉kafka broker的leader,以及在consumer group發生變化時進行rebalance,因為consumer消費kafka topic的partition的offsite資訊是存在zookeeper的。producer使用push模式將訊息發布到broker,consumer使用pull模式從broker訂閱並消費訊息。
資料傳輸的事務定義
最多一次:訊息不會被重**送,最多被傳輸一次,但也有可能一次不傳輸
最少一次:訊息不會被漏傳送,最少被傳輸一次,但也有可能被重複傳輸
事務保證
內部重試問題:procedure冪等處理
多分割槽原子寫入
保證-避免殭屍例項
每個事務producer分配乙個transactional.id,在程序重新啟動時能夠識別相同的producer例項
kafka增加了乙個與transactional.id相關的epoch,儲存每個transactional.id內部元資料
一旦epoch被觸發,任何具有相同的transactional.id和更舊的epoch的producer被視為殭屍,kafka會拒絕來自這些procedure的後續事務性寫入
Kafka知識點總結
下圖所體現出來的知識點 紅色字型表示隱藏知識點 1 kafka生態系統四大角色 生產者 producer kafka集群 broker 消費者 consumer zookeeper。2 每個消費者都必須屬於乙個消費組,乙個組內的消費者可以有多個。3 乙個topic 主題 可以有1到多個partiti...
KafKa的知識點總結
1 kafka是什麼?類jms訊息佇列,結合jms中的兩種模式,可以有多個消費者主動拉取資料,在jms中只有點對點模式才有消費者主動拉取資料。kafka是乙個生產 消費模型。producer 生產者,只負責資料生產,生產者的 可以整合到任務系統中。資料的分發策略由producer決定,預設是defa...
kafka相關知識點總結
1 kafka是什麼 類jms訊息佇列,結合jms中的兩種模式 點對點模型,發布者 訂閱者模型 可以有多個消費者主動拉取資料,在jms中只有點對點模式才有消費者主動拉取資料。kafka是乙個生產 消費模型。producer 生產者,只負責資料生產,生產者的 可以整合到任務系統中。資料的分發策略由pr...