客戶端對ZK的更新操作都是永久的,不可回退的,也就是說,一旦客戶端收到一個來自server操作成功的響應,那么這個變更就永久生效了。為做到這點,ZK會將每次更新操作以事務日志的形式寫入磁盤,寫入成功后才會給予客戶端響應。明白這點之后,你就會明白磁盤的吞吐性能對于ZK的影響了,磁盤寫入速度制約著ZK每個更新操作的響應。
為了盡量減少ZK在讀寫磁盤上的性能損失,可以考慮使用單獨的磁盤作為事務日志的輸出(使用單獨的掛載點用于事務日志的輸出)。事務日志的寫性能確實對ZK性能,尤其是更新操作的性能影響很大,所以想辦法搞到一個單獨的磁盤!ZK的事務日志輸出是一個順序寫文件的過程,本身性能是很高的,所以盡量保證不要和其它隨機寫的應用程序共享一塊磁盤,盡量避免對磁盤的競爭。
配置文件中的dataDir目錄指定了ZK的數據目錄,用于存儲ZK的快照文件(snapshot)。
默認情況下,ZK的事務日志也會存儲在這個目錄中。在完成若干次事務日志之后(在ZK中,凡是對數據有更新的操作,比如創建節點,刪除節點或是對節點數據內容進行更新等,都會記錄事務日志),ZK會觸發一次快照(snapshot),將當前server上所有節點的狀態以快照文件的形式dump到磁盤上去,即snapshot文件。這里的若干次事務日志是可以配置的,默認是100000,配置參數 snapCount。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。