1.資料持久化:
2.日誌資料持久化特性:
寫操作:通過將資料追加到檔案中實現
讀操作:讀的時候從檔案中讀就好了
3.優勢:
讀操作不會阻塞寫操作和其他操作(因為讀和寫都是追加的形式,都是順序的,不會亂,所以不會發生阻塞),資料大 小不對效能產生影響;
沒有容量限制(相對於記憶體來說)的硬碟空間建立訊息系統;
線性訪問磁碟,速度快,可以儲存任意一段時間!
4.持久化的具體實現:
5.索引
為資料檔案建索引:
稀疏儲存,每隔一定位元組的資料建立一條索引(這樣的目的是為了減少索引檔案的大小)。
下圖為乙個partition的索引示意圖:
注:
1.現在對6.和8建立了索引,如果要查詢7,則會先查找到8然後,再找到8後的乙個索引6,然後兩個索引之間做二分法,找到7的位置
2.每乙個log檔案中又分為多個segment
注:
1.當生產者將訊息傳送到kafka後,就會去立刻通知zookeeper,會往zookeeper的節點中去掛載,
zookeeper中會watch到相關的動作,當watch到相關的資料變化後,會通知消費者去消費訊息。
2.消費者是主動去pull(拉)kafka中的訊息,這樣可以降低broker的壓力,因為broker中的訊息是無狀態的,broker也不知道哪個訊息是可以消費
3.當消費者消費了一條訊息後,也必須要去通知zookeeper。zookeeper會記錄下消費的資料,這樣但系統出現問題後就可以還原,可以知道哪些訊息已經被消費了
部署圖:
name server集群即zookeeper集群
注:
最重要的是要理解使用crc機制來驗證資料是否傳輸不完整,破損。
其他的了解即可
四.kafka的事務機制
1.kafka的高吞吐量的因素
2.為了防止磁碟爆滿,日誌有兩種策略
持久化機制
redis是乙個支援持久化的記憶體資料庫,也就說redis需要經常將記憶體中的資料同步到硬碟來保證持久化 redis支援兩種持久化方式 1.snapshotting 快照 也是預設方式 將資料存以快照的方式寫入到二進位制檔案中 預設檔名dump.rdb可以通過配置設定自動做快照持久化的方式。我們可以...
Kafka學習 四 Kafka持久化
概述 kafka很大程度上依賴檔案系統來儲存和快取訊息。有一普遍的認識 磁碟很慢。這讓人們懷疑使用磁碟作為持久化的效能。實際上,磁碟是快還是慢完全取決於我們是如何使用它。就目前來說,乙個 six 7200rpm sata raid 5磁碟線性 順序 寫入的效能能達到600mb sec,而任意位置寫 ...
sparkStreaming持久化機制
對於基於視窗的操作,比如reducebywindow reducebykeyandwindow,以及基於狀態的操作,比如updatestatebykey,預設就隱式開啟了持久化機制。即spark streaming預設就會將上述操作產生的dstream中的資料快取到記憶體長,不需要開發人員手動呼叫p...