應用的地方html
1, 數據的實時處理在應用和系統之間: 實時數據流應用管道數據庫
2, 實時數據的轉換和響應: 實時數據流處理併發
特性高併發
1. 發佈,訂閱流數據, 存儲消息隊列和企業消息系統性能
2. 以容錯方式存儲數據流大數據
3. 當數據發送的時候,處理3d
概念日誌
kafka 會將 以 partition 放在一個 broker 裏面,只會存在一個 broker 裏面 htm
replication 就是 副本,備份的意思 。blog
若是一個replication leader 掛了, 那麼 replicaManager 會在剩下的 replication 裏面 選舉一個 做爲 replicaiton leader
消費者數據小於或者等於 Partition 是爲了防止消息的重複消費
一個 partition 只能 對應一個 broker .固然 broker 能夠有多個partition , 1對多的關係
固然 若是 partitions 很大,那麼能夠有多個 broker . 也就是相同的 partition 只能有一個 broker .
Consumer Group 是爲了 穩定性和 性能
也是默認 Replication 係數爲 1, 也就是是沒有 Replication 的,爲了節約資源。
kafka 是強依賴於 zookeeper 的
消費端, 能夠 pull 拉想要的消息, 客戶端能夠是 大數據庫, 監控端, 其餘服務,數據倉庫
1, offset 偏移有多少 , Length 消息的長度 , CRC32 校驗字段,校驗消息的完整性
2, Magic 判斷是不是 kafka的消息
3, Key 和 Value 並無對長度進行限制
特色
1, 多分區
2, 多副本
3, 多訂閱者
4, 基於 zookeeper 調度
高性能: 高吞吐量,低延遲,高併發,時間複雜度 0(1)
持久性與擴展性: 數據可持久化, 容錯性, 支持在線水平擴展, 消息自動平衡(生產者和消費者發送和消費消息的平衡,避免某些機器鏈接太高)
應用場景: 消息隊列, 行爲跟蹤,元信息監控, 日誌收集 ,流處理 ,事件源 , 持久性日誌
應用
消費端的 --from-beginning 表明 消費端 能夠從頭開始消費消息,不然只是消費 以後生產端生產的消息
參考https://www.cnblogs.com/flower1990/p/7466882.html
事務
以上就是3種事務定義了,第二種就須要消費端作 消息冪等了。
事務保證
內部重試問題: Procedure 冪等處理
即不用擔憂由於kafka 內部 問題而致使的 消息重複問題
多分區原子寫入, kafka 經過 offsets topic 偏移量來保證
即 topic1 提交事務到 從 topic1 A 到 topic2 B 整個都是 原子的
零拷貝
由於和 用戶空間的 拷貝次數爲0 ,因此叫 零拷貝
以上來自慕課網