亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

ZooKeeper日志與快照文件簡單分析

2019-11-14 15:36:30
字體:
來源:轉載
供稿:網友

有用過Zookeeper的都知道zoo.cfg配置文件中有dataDir配置項用于存儲數據,不過可能有些人不太清楚這個目錄具體存儲的是那些數據,默認情況下這個目錄是用于存儲Log(事務日志)與Snapshot(快照)數據,但是Zookeeper還提供了一個用于Log存儲目錄的配置項dataLogDir而dataDir用于存儲Snapshot數據,Log文件寫入頻率非常高如果有對Snapshot文件經常操作或是對Zookeeper性能要求非常高可以為Log與Snapshot分別配置不同的目錄存儲;本文主要是結合源碼分析Zookeeper的Log與Snapshot文件,這里我分別為Log與Snapshot配置了不同的存儲目錄:dataDir=D:/zookeeper-3.4.6/data 、dataLogDir=D:/zookeeper-3.4.6/data/log;
  事務日志與Snapshot的操作是在org.apache.zookeeper.server.persistence包中,這里也主要是分析該包下的各個類;在FileTxnSnapLog類中看到了它在我們為事務日志與Snapshot配置的目錄下又創建了一個子目錄version-2同時又指定為該兩種文件的存儲目,在里面還可以看到FileTxnLog、FileSnap類分別為處理事務日志和Snapshot的;

事務日志文件

  在Zab協議中我們知道每當有接收到客戶端的事務請求后Leader與Follower都會將把該事務日志存入磁盤日志文件中,該日志文件就是這里所說的事務日志,下面將詳細分析該日志文件;
  FileTxnLog類用于處理事務日志文件這里就從此類開始,在該類中看到了PReAllocSize、TXNLOG_MAGIC、VERSION、lastZxidSeen、dbId等這樣的屬性:
  1. preAllocSize: 默認預分配的日志文件的大小65536*1024字節
  2. TXNLOG_MAGIC:日志文件魔數為ZKLG
  3. VERSION:日志文件版本號2
  4. lastZxidSeen:最后的ZXID

  類中還有一個靜態代碼塊用于讀取配置項中的preAllocSize,也就是說預分配的日志文件大小是可配置的,接下來看看該類中最重要的一個方法append,該方法主要功能是創建新的日志文件與往日志文件中追加新的事務日志記錄;從中可以看到日志文件的相關信息

  1. 文件名為log,后綴為十六進制的ZXID
  2. 日志文件頭有:magic、version、dbid
  3. 創建文件后分配的文件大小為:67108864字節+16字節,其中16字節為文件頭
  4. 使用Adler32作為日志文件的校驗碼
  5. 當日志文件寫滿預分配大大小后就擴充日志文件一倍大小


        1.1 日志文件目錄

  正如從代碼中看到的一樣version-2目錄中存儲著Zookeeper的事務日志文件,有看到log.10、log.4f文件,這些都是Zookeeper的事務日志文件;這兩個文件都有一個特點就是文件名為log.xx,大小為64MB文件的后綴xx時間最早的 數字總是比最晚的小。如果有了解過Zookeeper的ZAB協議那肯定知道它為每一個事務請求都分配了一個事務ID也就是ZXID,上面章節也知道了xx就是Zookeeper處理請求的ZXID,該ZXID為log文件中第一條事務的ZXID;ZXID規則為前32 字節為Leader周期,后32字節為事務請求序列,所以通過事務日志就可以輕松的知道當前的Leader周期與每個文件所屬的Leader周期;

日志文件可視化
  事務日志文件中存儲的都是二進制的數據,如果不借助其他工具是很難知道里面存儲的內容的,Zookeeper也給我們提供了這樣的工具,在org.apache.zookeeper.server包中的LogFormatter類為我們提供了把事務日志文件以我們看得懂的數據輸出的功能,這里就使用該工具輸出該事務日志文件,并解釋該數據;
  LogFormatter工具的使用方法: java -cp ../../../zookeeper-3.4.6.jar;../../../lib/slf4j-api-1.6.1.jar org.apache.zookeeper.server.LogFormatter log.1

日志分析
  第一行:ZooKeeper Transactional Log File with dbid 0 txnlog format version 2
  上面的代碼分析中有說到每個日志文件都有一個這就是那里所說的日志頭,這里magic沒有輸出,只輸出了dbid還有version;

  第二行:15-8-12 下午03時59分53秒 session 0x14f20ea71c10000 cxid 0x0 zxid 0x1 createSession 4000
  這也就是具體的事務日志內容了,這里是說xxx時間有一個sessionid為0x14f20ea71c10000、cxid為0x0、zxid為0x1、類型為createSession、超時時間為4000毫秒

  第三行:15-8-12 下午03時59分54秒 session 0x14f20ea71c10000 cxid 0x1 zxid 0x2 create '/solinx0000000000,#736f6c696e78,v{s{31,s{'world,'anyone}}},F,1
  sessionID為0x14f20ea71c10000,cxid:0x01、zxid:0x02、創建了一個節點路徑為:/solinx0000000000、節點內容為:#736f6c696e78(經過ASCII,實際內容為solinx)、acl為world:anyone任何人都可以管理該節點、節點不是ephemeral節點的、父節點子版本:1

  第四行:15-8-12 下午04時15分56秒 session 0x14f20ea71c10000 cxid 0x0 zxid 0x3 closeSession null
  這里是說xxx時間有一個sessionid為0x14f20ea71c10000、cxid為0x0、zxid為0x3、類型為closeSession

快照文件

  快照文件的處理在FileSnap類中,與事務日志文件一樣快照文件也一樣有SNAP_MAGIC、VERSION、dbId這些,這作用也只是用來標識這是一個快照文件;Zookeeper的數據在內存中是以DataTree為數據結構存儲的,而快照就是每間隔一段時間Zookeeper就會把整個DataTree的數據序列化然后把它存儲在磁盤中,這就是Zookeeper的快照文件,快照文件是指定時間間隔對數據的備份,所以快照文件中數據通常都不是最新的,多久抓一個快照這也是可以配置的snapCount配置項用于配置處理幾個事務請求后生成一個快照文件;
  與事務日志文件一樣快照文件也是使用ZXID作為快照文件的后綴,在FileTxnSnapLog類中的save方法中生成文件并調用FileSnap類序列化DataTree數據并且寫入快照文件中;


        1.2 快照文件目錄

快照文件可視化
  與日志文件一樣Zookeeper也為快照文件提供了可視化的工具org.apache.zookeeper.server包中的SnapshotFormatter類,接下來就使用該工具輸出該事務日志文件,并解釋該數據;
  SnapshotFormatter工具的使用方法: java -cp ../../zookeeper-3.4.6.jar;../../lib/slf4j-api-1.6.1.jar org.apache.zookeeper.server.SnapshotFormatter snapshot.17


快照分析
  快照文件就很容易看得懂了,這就是Zookeeper整個節點數據的輸出;

  第一行:ZNode Details (count=11):
  ZNode節點數總共有11個

  /cZxid = 0x00000000000000
  ctime = Thu Jan 01 08:00:00 CST 1970
  mZxid = 0x00000000000000
  mtime = Thu Jan 01 08:00:00 CST 1970
  pZxid = 0x00000000000016
  cversion = 7
  dataVersion = 0
  aclVersion = 0
  ephemeralOwner = 0x00000000000000
  dataLength = 0

這么一段數據是說,根節點/:
  cZxid:創建節點時的ZXID
  ctime:創建節點的時間
  mZxid:節點最新一次更新發生時的zxid
  mtime:最近一次節點更新的時間
  pZxid:父節點的zxid
  cversion:子節點更新次數
  dataVersion:節點數據更新次數
  aclVersion:節點acl更新次數
  ephemeralOwner:如果節點為ephemeral節點則該值為sessionid,否則為0
  dataLength:該節點數據的長度

快照文件的末尾:
  Session Details (sid, timeout, ephemeralCount):   0x14f211584840000, 4000, 0   0x14f211399480001, 4000, 0
  這里是說當前抓取快照文件的時間Zookeeper中Session的詳情,有兩個session超時時間都是4000毫秒ephemeral節點為0;

文章首發地址:Solinx
http://www.solinx.co/archives/448


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情a在线| 国产成人拍精品视频午夜网站| 成人国产精品久久久| 色噜噜亚洲精品中文字幕| 国产亚洲欧洲高清| 久久久综合av| 日韩中文字幕在线| 美女精品视频一区| 国产日韩欧美一二三区| 亚洲成人在线网| 中文字幕久久精品| 亚州精品天堂中文字幕| 日韩一区二区av| 精品视频在线观看日韩| 在线亚洲国产精品网| 欧美激情精品久久久| 中文字幕av一区中文字幕天堂| 92国产精品久久久久首页| 亚洲国产欧美精品| 午夜精品视频网站| 日韩av影片在线观看| 91成人在线观看国产| 日韩免费看的电影电视剧大全| 久久综合伊人77777蜜臀| 国产伦精品免费视频| 国产精品成人免费视频| 久久噜噜噜精品国产亚洲综合| 精品香蕉在线观看视频一| 最新69国产成人精品视频免费| 日本亚洲欧美三级| www.日韩系列| 亚洲精品视频在线播放| 91欧美精品午夜性色福利在线| 亚洲色图狂野欧美| 热99精品里视频精品| 97av在线播放| 亚洲精品免费av| 日韩视频免费中文字幕| 成人看片人aa| 国产精品一香蕉国产线看观看| 精品久久香蕉国产线看观看gif| 成人午夜一级二级三级| 欧美性高潮床叫视频| 精品国产999| 成人午夜在线视频一区| 欧美一区第一页| 欧美理论电影在线观看| 国产精品99一区| 亚洲夜晚福利在线观看| 成人激情视频在线观看| 亚洲国产精彩中文乱码av| 亚洲美女免费精品视频在线观看| 性色av一区二区三区红粉影视| 亚洲成人精品视频| www.国产精品一二区| 91精品久久久久久久久久另类| 狠狠做深爱婷婷久久综合一区| xvideos亚洲| 国产精品jvid在线观看蜜臀| www.亚洲成人| 日韩国产精品视频| 亚洲老板91色精品久久| 欧美成人精品在线视频| 97超碰蝌蚪网人人做人人爽| 欧美精品国产精品日韩精品| 亚洲精品91美女久久久久久久| 国产不卡一区二区在线播放| 91天堂在线观看| 欧美精品制服第一页| 日本国产一区二区三区| 欧美亚洲日本黄色| 欧美性猛交99久久久久99按摩| 日韩成人在线网站| 国产精品精品视频一区二区三区| 欧美在线日韩在线| 欧美日韩一区免费| 青草热久免费精品视频| 成人福利视频网| 国产精品久久久91| 奇米成人av国产一区二区三区| 精品国产区一区二区三区在线观看| 精品久久久久久久久久久久久| 色哟哟亚洲精品一区二区| 日韩国产在线播放| 欧美日韩国产123| 亚洲国产精品女人久久久| 亚洲成年人影院在线| 欧美极品美女视频网站在线观看免费| 日韩电影中文字幕在线| 懂色aⅴ精品一区二区三区蜜月| 黑人极品videos精品欧美裸| 中文字幕国内精品| 国产亚洲欧美日韩美女| 91精品国产一区| 亚洲一区二区三区乱码aⅴ蜜桃女| 久久精品国产电影| 91精品久久久久久久久| 在线成人一区二区| 久久九九热免费视频| xxx一区二区| 日韩视频免费大全中文字幕| 欧美精品电影在线| 91视频免费网站| 久久精品一区中文字幕| 97视频免费观看| 九九热在线精品视频| 久久精品中文字幕电影| 亚洲国产欧美久久| 午夜精品美女自拍福到在线| 国产丝袜精品第一页| 成人在线观看视频网站| 国产99在线|中文| 国产午夜精品免费一区二区三区| 欧美尺度大的性做爰视频| 欧美一级视频一区二区| 国产欧美日韩中文| 国产精品美女免费看| 日韩激情在线视频| 国产日本欧美一区二区三区| 91精品在线观看视频| 国产精品欧美日韩一区二区| 奇米成人av国产一区二区三区| 在线性视频日韩欧美| 夜夜嗨av一区二区三区四区| 亚洲字幕一区二区| 国产精品久久久久久久午夜| 久久影视免费观看| 欧美极品欧美精品欧美视频| 久久久国产成人精品| 亚洲第一网中文字幕| 26uuu亚洲国产精品| 亚洲人免费视频| 久久久久久噜噜噜久久久精品| 国产综合在线视频| 日本亚洲精品在线观看| 国产精品稀缺呦系列在线| 九九久久久久久久久激情| 日韩精品免费在线观看| 欧美精品在线看| 国产亚洲欧美aaaa| 久久久精品2019中文字幕神马| 久久久久久91香蕉国产| 国产精品国产三级国产专播精品人| 成人免费xxxxx在线观看| 91精品国产综合久久久久久久久| 成人精品福利视频| 国产精品成人av性教育| 菠萝蜜影院一区二区免费| 日韩中文字幕免费| 97国产精品久久| 国产69精品99久久久久久宅男| 欧美日韩福利在线观看| 亚洲a在线观看| 亚洲美女av黄| 超碰日本道色综合久久综合| 亚洲国产成人久久| 欧美性猛交xxxx免费看漫画| 免费99精品国产自在在线| 亚洲性av在线| 精品日韩视频在线观看| 日韩国产精品视频| 国产欧美中文字幕| 久久成人这里只有精品| 成人黄色免费在线观看|