您好,登錄后才能下訂單哦!
好程序員大數據培訓分享關于kafka的幾個重要問題:
1.segment的概念
topic中會有一個到多個分區,每個分區中會有多個segment,segment的大小在kafka的配置文件里可以設置,segment的大小是相等的,每個segment有多個index文件和對應的數據文件組成的
2.數據存儲機制?(數據寫入快的原因)
首先是broker接收到數據,將數據放到操作系統(linux)的緩存里(pagecache)
pagecache 會盡可能多的使用空閑內存,會使用sendfile技術盡可能多的減少操作系統和應用程序之間進行重復緩存,寫入數據的時候還會用到順序寫入的方式,寫入數據的速度可達600m/s
3.consumer是怎么解決負載均衡問題的?
當同一個group 的consumer的數量發生改變時,會觸發kafka的負載均衡,首先獲取consumer消費的起始分區號,再計算出consumer要消費的分區數量,最后用起始分區號的hashcode值模余分區數
1、數據的分發策略
kafka默認調用自己的分區器(DefaultPartitioner)進行分區,也可以自定義分區器,自定義分區器需要實現Partitioner特質,實現partition方法
2、kafka是怎么保證數據不丟失的?
kafka接收數據以后會根據創建的topic指定的副本數來儲存,副本數據是由kafka自己進行同步,多副本機制保證了數據的安全性
3、kafka可以保證topic里的數據全局有序嗎
kafka可以做到分區內有序,分區之間是無序的
怎么做到全局有序呢?最簡單方式是創建分區topic時指定分區數為1
4、如果想消費已經被消費過的數據
1.采用不同的group。
2.通過一些配置,就可以將線上產生的數據同步到鏡像中去,然后再由特定的集群區處理大批量的數據。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。