• <menu id="gyiem"><menu id="gyiem"></menu></menu>
  • <menu id="gyiem"><code id="gyiem"></code></menu>

    深入淺出Zookeeper(二) 基于Zookeeper的分布式鎖與領導選舉

    原創文章,轉載請務必將下面這段話置于文章開頭處。
    本文轉發自技術世界原文鏈接 http://www.luozeyang.com/zookeeper/distributedlock/

    Zookeeper特點

    Zookeeper節點類型

    如上文《Zookeeper架構及FastLeaderElection機制》所述,Zookeeper 提供了一個類似于 Linux 文件系統的樹形結構。該樹形結構中每個節點被稱為 znode ,可按如下兩個維度分類

    • Persist vs. Ephemeral
      • Persist節點,一旦被創建,便不會意外丟失,即使服務器全部重啟也依然存在。每個 Persist 節點即可包含數據,也可包含子節點
      • Ephemeral節點,在創建它的客戶端與服務器間的 Session 結束時自動被刪除。服務器重啟會導致 Session 結束,因此 Ephemeral 類型的 znode 此時也會自動刪除
    • Sequence vs. Non-sequence
      • Non-sequence節點,多個客戶端同時創建同一 Non-sequence 節點時,只有一個可創建成功,其它勻失敗。并且創建出的節點名稱與創建時指定的節點名完全一樣
      • Sequence節點,創建出的節點名在指定的名稱之后帶有10位10進制數的序號。多個客戶端創建同一名稱的節點時,都能創建成功,只是序號不同

    Zookeeper語義保證

    Zookeeper 簡單高效,同時提供如下語義保證,從而使得我們可以利用這些特性提供復雜的服務。

    • 順序性 客戶端發起的更新會按發送順序被應用到 Zookeeper 上
    • 原子性 更新操作要么成功要么失敗,不會出現中間狀態
    • 單一系統鏡像 一個客戶端無論連接到哪一個服務器都能看到完全一樣的系統鏡像(即完全一樣的樹形結構)。注:根據上文《Zookeeper架構及FastLeaderElection機制》介紹的 ZAB 協議,寫操作并不保證更新被所有的 Follower 立即確認,因此通過部分 Follower 讀取數據并不能保證讀到最新的數據,而部分 Follwer 及 Leader 可讀到最新數據。如果一定要保證單一系統鏡像,可在讀操作前使用 sync 方法。
    • 可靠性 一個更新操作一旦被接受即不會意外丟失,除非被其它更新操作覆蓋
    • 最終一致性 寫操作最終(而非立即)會對客戶端可見

    Zookeeper Watch機制

    所有對 Zookeeper 的讀操作,都可附帶一個 Watch 。一旦相應的數據有變化,該 Watch 即被觸發。Watch 有如下特點

    • 主動推送 Watch被觸發時,由 Zookeeper 服務器主動將更新推送給客戶端,而不需要客戶端輪詢。
    • 一次性 數據變化時,Watch 只會被觸發一次。如果客戶端想得到后續更新的通知,必須要在 Watch 被觸發后重新注冊一個 Watch。
    • 可見性 如果一個客戶端在讀請求中附帶 Watch,Watch 被觸發的同時再次讀取數據,客戶端在得到 Watch 消息之前肯定不可能看到更新后的數據。換句話說,更新通知先于更新結果。
    • 順序性 如果多個更新觸發了多個 Watch ,那 Watch 被觸發的順序與更新順序一致。

    分布式鎖與領導選舉關鍵點

    最多一個獲取鎖 / 成為Leader

    對于分布式鎖(這里特指排它鎖)而言,任意時刻,最多只有一個進程(對于單進程內的鎖而言是單線程)可以獲得鎖。

    對于領導選舉而言,任意時間,最多只有一個成功當選為Leader。否則即出現腦裂(Split brain)

    鎖重入 / 確認自己是Leader

    對于分布式鎖,需要保證獲得鎖的進程在釋放鎖之前可再次獲得鎖,即鎖的可重入性。

    對于領導選舉,Leader需要能夠確認自己已經獲得領導權,即確認自己是Leader。

    釋放鎖 / 放棄領導權

    鎖的獲得者應該能夠正確釋放已經獲得的鎖,并且當獲得鎖的進程宕機時,鎖應該自動釋放,從而使得其它競爭方可以獲得該鎖,從而避免出現死鎖的狀態。

    領導應該可以主動放棄領導權,并且當領導所在進程宕機時,領導權應該自動釋放,從而使得其它參與者可重新競爭領導而避免進入無主狀態。

    感知鎖釋放 / 領導權的放棄

    當獲得鎖的一方釋放鎖時,其它對于鎖的競爭方需要能夠感知到鎖的釋放,并再次嘗試獲取鎖。

    原來的Leader放棄領導權時,其它參與方應該能夠感知該事件,并重新發起選舉流程。

    非公平領導選舉

    從上面幾個方面可見,分布式鎖與領導選舉的技術要點非常相似,實際上其實現機制也相近。本章就以領導選舉為例來說明二者的實現原理,分布式鎖的實現原理也幾乎一致。

    選主過程

    假設有三個Zookeeper的客戶端,如下圖所示,同時競爭Leader。這三個客戶端同時向Zookeeper集群注冊EphemeralNon-sequence類型的節點,路徑都為/zkroot/leader(工程實踐中,路徑名可自定義)。


    Unfair Leader Election

    如上圖所示,由于是Non-sequence節點,這三個客戶端只會有一個創建成功,其它節點均創建失敗。此時,創建成功的客戶端(即上圖中的Client 1)即成功競選為 Leader 。其它客戶端(即上圖中的Client 2Client 3)此時勻為 Follower。

    放棄領導權

    如果 Leader 打算主動放棄領導權,直接刪除/zkroot/leader節點即可。

    如果 Leader 進程意外宕機,其與 Zookeeper 間的 Session 也結束,該節點由于是Ephemeral類型的節點,因此也會自動被刪除。

    此時/zkroot/leader節點不復存在,對于其它參與競選的客戶端而言,之前的 Leader 已經放棄了領導權。

    感知領導權的放棄

    由上圖可見,創建節點失敗的節點,除了成為 Follower 以外,還會向/zkroot/leader注冊一個 Watch ,一旦 Leader 放棄領導權,也即該節點被刪除,所有的 Follower 會收到通知。

    重新選舉

    感知到舊 Leader 放棄領導權后,所有的 Follower 可以再次發起新一輪的領導選舉,如下圖所示。


    Unfair Leader Reelection

    從上圖中可見

    • 新一輪的領導選舉方法與最初的領導選舉方法完全一樣,都是發起節點創建請求,創建成功即為 Leader,否則為 Follower ,且 Follower 會 Watch 該節點
    • 新一輪的選舉結果,無法預測,與它們在第一輪選舉中的順序無關。這也是該方案被稱為非公平模式的原因

    非公平模式總結

    • 非公平模式實現簡單,每一輪選舉方法都完全一樣
    • 競爭參與方不多的情況下,效率高。每個 Follower 通過 Watch 感知到節點被刪除的時間不完全一樣,只要有一個 Follower 得到通知即發起競選,即可保證當時有新的 Leader 被選出
    • 給Zookeeper 集群造成的負載大,因此擴展性差。如果有上萬個客戶端都參與競選,意味著同時會有上萬個寫請求發送給 Zookeper。如《Zookeeper架構》一文所述,Zookeeper 存在單點寫的問題,寫性能不高。同時一旦 Leader 放棄領導權,Zookeeper 需要同時通知上萬個 Follower,負載較大。

    公平領導選舉

    選主過程

    如下圖所示,公平領導選舉中,各客戶端均創建/zkroot/leader節點,且其類型為EphemeralSequence


    Fair Leader Election

    由于是Sequence類型節點,故上圖中三個客戶端均創建成功,只是序號不一樣。此時,每個客戶端都會判斷自己創建成功的節點的序號是不是當前最小的。如果是,則該客戶端為 Leader,否則即為 Follower。

    在上圖中,Client 1創建的節點序號為 1 ,Client 2創建的節點序號為 2,Client 3創建的節點序號為3。由于最小序號為 1 ,且該節點由Client 1創建,故Client 1為 Leader 。

    放棄領導權

    Leader 如果主動放棄領導權,直接刪除其創建的節點即可。

    如果 Leader 所在進程意外宕機,其與 Zookeeper 間的 Session 結束,由于其創建的節點為Ephemeral類型,故該節點自動被刪除。

    感知領導權的放棄

    與非公平模式不同,每個 Follower 并非都 Watch 由 Leader 創建出來的節點,而是 Watch 序號剛好比自己序號小的節點。

    在上圖中,總共有 1、2、3 共三個節點,因此Client 2 Watch /zkroot/leader1Client 3 Watch /zkroot/leader2。(注:序號應該是10位數字,而非一位數字,這里為了方便,以一位數字代替)

    一旦 Leader 宕機,/zkroot/leader1被刪除,Client 2可得到通知。此時Client 3由于 Watch 的是/zkroot/leader2,故不會得到通知。

    重新選舉

    Client 2得到/zkroot/leader1被刪除的通知后,不會立即成為新的 Leader 。而是先判斷自己的序號 2 是不是當前最小的序號。在該場景下,其序號確為最小。因此Client 2成為新的 Leader 。


    Fair Leader Reelection

    這里要注意,如果在Client 1放棄領導權之前,Client 2就宕機了,Client 3會收到通知。此時Client 3不會立即成為Leader,而是要先判斷自己的序號 3 是否為當前最小序號。很顯然,由于Client 1創建的/zkroot/leader1還在,因此Client 3不會成為新的 Leader ,并向Client 2序號 2 前面的序號,也即 1 創建 Watch。該過程如下圖所示。


    Fair Leader Exception

    公平模式總結

    • 實現相對復雜
    • 擴展性好,每個客戶端都只 Watch 一個節點且每次節點被刪除只須通知一個客戶端
    • 舊 Leader 放棄領導權時,其它客戶端根據競選的先后順序(也即節點序號)成為新 Leader,這也是公平模式的由來
    • 延遲相對非公平模式要高,因為它必須等待特定節點得到通知才能選出新的 Leader

    總結

    基于 Zookeeper 的領導選舉或者分布式鎖的實現均基于 Zookeeper 節點的特性及通知機制。充分利用這些特性,還可以開發出適用于其它場景的分布式應用。

    郭俊 Jason wechat
    歡迎關注作者微信公眾號【大數據架構】
    您的贊賞將支持作者繼續原創分享
    速赢彩app www.js6767r.com | www.209035.com | 83086g.com | www.4520022.com | 3222h.cc | www.050955.com | www.8956.com | 660fh.com | www.730678.com | www.886889.com | b1915b.com | www.33598d.com | www.4938d.com | 1775i.com | www.5952122.com | www.cr345.net | df6331.com | www.1119yl.com | feicai0352.com | www.81520e.com | www.8473j.com | 983888c.com | www.581477.com | www.l5502.com | 7202004.com | www.719113.com | www.58665r.com | 3522kk.com | www.541611.com | www.55545b.com | 0015vv.com | www.426667.com | www.848777p.com | 8381u.com | www.810709.com | 50067c.com | www.290252.com | www.bwinyz32.com | www.1869a.com | 8742gg.com | jjjj007.com | www.35918n.com | www.0591sf.com | 1468ccc.com | www.055.la | www.66238.com | 728012.com | www.207109.com | www.556939.com | www.7aobo.com | 2349013.com | www.25688o.com | www.cjycp55.com | aaa5701.com | www.898134.com | www.5146z9.com | 5589t.com | 8988w.com | www.66653r.com | www.8517444.com | 4461f.com | www.401276.com | www.b063801.com | www.wns8858.com | gg2949.com | www.ya438.com | www.sj52188.com | 3844nn.com | mf704.com | www.001ac.com | 22294411.com | www.hx1199.com | www.1168n.com | 256777.com | 20833e.com | www.99jtb.com | www.27363i.com | 99993885.com | s99345.am | www.572899.com | www.466890.com | www.21365oo.com | 4488ppp.com | www.66653e.com | www.37377m.com | www.8622msc.com | jk080.cc | 1347.com | www.055969.com | www.ya2019g.com | www.8222000.com | 7141ll.com | ss2649.com | www.904827.com | www.q3410.com | www.58js88.com | 8547uu.com | 3122dd.com | www.6832c.com | www.cn365x.com | www.4625k.com | 4288oo.com | 9856bb.com | www.2875r.com | www.2002366.com | www.305kk.com | 00048g.com | 3178uu.com | www.649880.com | www.676777.cc | www.56655r.com | www.7720p.com | 167748.com | vbet.io | www.926013.com | www.v774477.com | www.2266608.com | www.hj5888.com | 4136q.com | 54241177.com | www.320160.com | www.65707s.com | www.0082737.com | www.993639.com | 111122bb.com | 3522l.cc | 4036xx.com | www.029079.com | www.663by.com | www.xpj55123.com | www.97060c.com | www.1238760.com | 8036v.com | 2222k27.com | ctxcp12.com | www.738742.com | www.0270w.com | www.b35rr.com | www.11099.com | www.b3656.com | 8547bb.com | 22222007.com | 3mgmrrr.com | www.178326.com | www.ya515.com | www.hg7800.com | www.pj66119.com | www.0004111.com | www.vnsr11888.com | 9649u.com | 00773pp.com | 2127kk.com | www.397836.com | www.3478v.cc | www.86267q.com | www.7036gg.com | www.85857g.com | www.901008.com | www.8058.la | 69096g.com | 1454445.com | 36401144.com | chinajtw.com | v47479.com | 5539822.com | www.621319.com | www.15355h.com | www.hg16688.com | www.9895c.com | www.7415m.com | www.d22255.com | www.0099ooo.com | www.32126j.net | 5001a.com | a2306.com | 370956.com | 19880v.com | 1463q.com | 205.com | hg0505.com | sha9904.com | www.33598v.com | www.340477.com | www.507433.com | www.823023.com | www.988824.com | www.002hy.cc | www.zcwf4.com | www.663by.com | www.80175.com | www.54400w.com | www.vip332.com | www.2418x.com | www.37377j.com | www.s63568.com | www.087a.com | www.6939a.com | www.5856858.com | www.4809d.com | www.98488.com | www.7920p.com | www.63606p.com | www.4521d.com | www.z2894.com | www.87708a.com | www.r32031.com | www.158024.com | www.742488.com | www.38775cc.com | www.yh888b.com | www.55717d.com | www.m77929.com | www.xpj68.com | www.61233x.com | www.52001.cc | www.949498.com | www.744418.com | www.377501.com | www.178615.com | 7720776.com | 497944.com | 44vv8332.com | 31325o.com | xh9.com | t86226.com | 3685k.com | 20160913.pw | 0747n.com | www.chun1983.com | www.58777t.com | www.ee2229.com | www.v36.com | www.5504ii.com | www.xycp98.net | www.593152.com | www.772063.com | www.ya2019a.com | www.5522y.cc | www.447478.com | 23800n.com | 1577726.com | 30175544.com | 143.cc | www.6686450.com | www.k27229.com | www.88597.com | www.888c31.com | www.sha0022.com | www.x94600.com | www.81678w.com | www.yi765.com | www.330985.com | hg57977.com | rr4255.com | 7555w.com | hh5443.com | www.7720c.com | www.hg7602.com | www.58665d.com | www.3846g.com | www.80767h.com | www.960677.com | 15856y.com | bj799.com | 4107j.com | 1213yyy.com | www.k973.com | www.4078k.com | www.398159.com | www.2tdc.com | vn258.com | 30173311.com | bb8888b.com | www.777cm1.com | www.452msc.com | www.dingxin598.com | www.52303p.com | www.345512.com | 8827jjj.com | 9068g.com | 1305005.com | www.hg3626.com | www.57800b.com | www.wd044.com | www.710930.com | ijubbtyy.cn | y14666.com | 6600mmmm | www.xj666s.com | www.52062c.com | www.500yf.com | www.35155v.com | 500000357.com | 2820s.com | www.58js88.com | www.3116g.com | www.51515r.com | www.170882.com | 3178nn.com | 2299555.com | www.33600.com | www.4996sh.com | www.50026l.com | www.43131e.com | 3678nnn.com | www.68666z.com | www.9068nn.com | www.00765.com | www.810609.com | 44jj8331.com | 66876.com | www.133004.com | www.750041.com | www.567388.com | blr5544.com | 2613y.com | www.ylg3456.com | www.456333.net | www.369072.com | hg1088.com | www.81866m.com | www.50000993.com | www.50066c.com | hg5583.com | 22332007.com | www.289333.com | www.6678699.com | www.338996.com | 78886508.com | www.345sbet.com | www.596345.com | www.766927.com | 35222.com | www.bg999222.com | www.9895f.com | www.657320.com | 11989z.com | www.yl999.com | www.bet63w.com | www.855312.com | 45460006.com | www.338830.com | www.5189555.com | www.609717.com | 3730-1.com | www.bet544.com | www.xj7001.com | www.377507.com | 3559y.com | www.herezeal.com | www.99677q.com | 6830.com | www.a1a111.cc | www.1429c1.com | www.703193.com | 88905050.com | www.38077x.com | www.yh76a.com | 22291177.com | www.3aobo.com | www.1754h.com | www.352477.com | 53358f.com | www.gd49.com | www.77cmc.com | i1915i.com | www.88699vip.com | www.0967003.com | x33o.vip | www.amjs602.com | www.32638.com | xpj01988.com | 3121mm.com | www.b35nn.com | www.349677.com | 998v.cc | www.20199kk.com | www.865657.com | 6487lll.com | www.2233ok.com | www.073wy.com | 1443b.com | www.66050.com | www.2109b.com | 0332u.com | www.2546m.com | www.064wy.com | 预览w444000.com | www.999497.com | www.c6881.com | 3522a.cc | www.458177.com | www.392477.com | chengxinbo.net | www.55060y.com | www.106265.com | 518cp55.com | www.40288q.com | 06006y.com | www.wns911.com | www.6653e.com | 364870.com | www.hg9166.com | www.hcjt3.com | k4389.com | www.346346.com | www.081290.com | 97297i.com | www.966725.com | 914907.com | www.h7733.com | www.915044.com | 68228d.com | www.8645006.com | 9411nnn.com | www.x5055.com | www.66332t.com | 463k8.com | www.018381.com | aa3335.com | www.299488.com | www.9611ll.com | www.477373.com | 909310.com | www.578888.vip | dh742.com | www.pj5673.com | www.588767.com | 2851g.com | www.5958115.com | 3844ee.com | www.799666i.com | 4195t.com | www.vipcc.com | www.3890m.com | nn500d.com | www.f50336.com | www.msc353.com | www.548511.com | hg22814.com | 30006g.com | www.30350x.com | 22qq8332.com | 20774499.com | 15856h.com | sbo333.com | www.022sc.cc | www.71088k.com | www.5856862.com | 7605t.com | www.4136v.com | 610260.com | yy080.net | www.918356c.com | t365q.com | www.wnsr520.com | www.083039.com | www.9068ss.com | www.833314.com | 1408e.com | www.022p.cc | 0080z.com | www.223456f.com | www.9818u.cc | 00cc8331.com | www.0194005.com | 22098r.com | www.12136i.com | 4737008.com | www.9895d.com | rauuu.com | www.92518.com | 7742tt.com | www.tw8888.net | 0245d.com | www.yao626.com | www.108067.com | www.xy466.com | www.277474.com | www.2846g.com | www.602957.com | www.pjbet333.com | www.730979.com | www.yh8006.com | www.960677.com | www.drf881.com | www.933771.com | www.32126m.net | www.506433.com | www.09569f.com | www.097918.com | www.jing6664.com | 2844g.com | www.4719aa.com | 1114116.com | www.8313p.com | 3304tt.com | www.78680l.com | 7605x.com | www.81678f.com | 11989k.com | www.974674.com | www.995v.net | jnn001.com | www.tmx6872.com | 131z.net | www.8008553.com | 55331xx.com | www.6364y.com | www.hg8599.com | www.301990.com | www.df7770.com | bozhijia168.com | www.b35aa.com | 4590ii.com | www.97655c.com | xbqjn.com | www.567106.com | www.15b19.net | 3726a.com | www.009329.com | 3467l.am | www.3890s.com | www.07078006.com | 44077x.com | www.1064.com | 4152d.com | www.6832z.com | www.3459h.com | h00851jc.com | www.4058qq.com | tzvip2021.com | www.89wcp.com | www.135520d.com | dejinbet.com | www.3846.com | 2846.com | www.047788.com | www.c44ee.com | ee4119.com | www.36166s.com | www.5557888.com | 73999i.com | www.9895u.com | 2767k.com | www.500227.com | www.767613.com | jing7779.com | www.14392.com | www.pj888055.com | 22296aa.com | www.0343a.com | www.13602477523.com | vic81.com | www.4058bb.com | 8xh.vip | www.526901.com | www.mk927.com | 9659o.com | www.zch8.com | www.30440.com | 91019p.com | www.2632w.com | www.js737737.com | 11018j.com | www.52511.com | www.js00773.com | ddd444000.com | www.9478s.com | www.vns3600.com | n888vv.com | www.3668r.com | www.665345.com | 0255.com | www.988456.vip | www.wnsr5550.com | 3552g.com | www.501209.com | www.7415s.com | 2267t.com | www.043552.com | www.115527v.com | 8790l.com | 3151.com | www.581137.com | www.333133r.com | mm99922.com | www.2350p.com | www.6685555.com | 22959.com | www.320992.com | www.1754w.com | www.89777f.com | www.9679c.com | aobo45.com | www.c2808.com | www.baifucp.com | yh66.app | 3245i.com | www.aa15.cc | www.hg5532.com | 0615018.com | www.686783.com | www.bwinyz22.com | 88850gg.com | 3678w.com | www.5086p.com | www.1111365.com | 8977qq.com | www.234892.com | www.a83377.com | www.28758t.com | 2019e.cc | www.c5237.com | www.4694y.com | xx888i.com | 3644l.com | www.5647.com | www.bb2229.com | 13222t.com | www.231844.com | www.883399f.com | www.1018111.com | ww111hg.com | www.488018.com | www.32031d.com | www.twcp06.com | 38398.com | www.330652.com | www.666xx.cc | www.708118.com | kk38648.com | 2535.com | www.66026.cc | www.sscb88.cc | www.hg0533.com | 33432g.com | www.383897.com | www.156a56.com | www.11004100.com | 4809u.com | 28835533.com | www.hc2388.com | www.7366004.com | www.4938s.com | 7003oo.com | js14g.com | www.1035n.com | www.b35ii.com | www.hgcn88.com | 86611h.com | hg5583.com | www.2632q.com | www.18955.bet | www.9068ss.com | 444x2.com | 97799n.com | www.907994.com | www.8818.tw | www.hg7321.com | 28758x.com | 33005156.com | www.109317.com | www.61655n.com | www.71071g.com | www.333133d.com | wx3322.com | feicai0752.com | www.cjcp600.com | www.0343q.com | www.846239.com | www.xpj8818.com | 3950t.com | 35222c.com | www.729133.com | www.16065w.com | www.38345y.com | www.7830l.com | 55331.com | 2019ww.cc | www.329477.com | www.43818m.com | www.1429d1.com | www.hg0444.com | 32355oo.com | 4167e.com | 5856dd.com | www.579199.com | www.77801r.com | www.xpj718.com | www.20288w.com | 2287.com | 82365x.com | 287711.com | www.92967a.com | www.009ac.com | www.hr1855.com | www.c5c99.com | www.hq999.com | 35252p.com | p67890.com | 5019kzb.com | qq365t.com | www.911790.com | www.yun879.com | www.00778t.com | www.097779f.com | www.9068xx.com | c47479.com | 9679i.com | xinpj1600.com | 7335n.com | www.652331.com | www.00840s.com | www.hg860033.com | www.hyi664.com | www.005596.com | www.h7788m.com | www.vip65533.com | www.65707n.com | www.320279.com | www.cp55569.com | www.16297733.com | www.wn2058.com | 61999ww.com | 4025z.com | www.68682j.com | www.xpj11008.com | www.7415hh.com | www.188614.com | www.0747700.com | www.ra8878.com | 500c32.com | bwin8m.com | 66006.com | 3778dd.com | 73567tg13.com | 18775j.com | www.303473.com | www.810609.com | www.500vp.com | www.71233x.com | www.p98478.com | www.lhg888.com | www.4446ddd.com | www.soxi588.com | www.699a.cc | www.88807f.com | www.wxr77.com | 2443b.com | y68681.com | 4461r.com | 12742a.com | www.hh3890.com | www.benz4400s.com | 455.com | 37570t.com | 9949c.com | 61323300.com | yk222.com | 44264444.com | 3421c.com | 759hd.com | 30006z.com | hjcp66.com | jsh04.net | 78666f.com | 0234e.com | 12016.com | 52688g.com | 829330.com | 9411ggg.com | 73999i.com | 7742kk.com | 818.cc | 56988ff.com | 6033n.com | 7744vn77.com | ff555r.com | 66300vip41.com | JS1388j.com | spj07.net | 9679l.com | 3957h.com | 36404411.com | 891567.com | r2146.com | tt38648.com | 009900c.com | kk2205.com | 889a.net | www.jsth518.com | www.betll365.com | www.m4737.com | www.00618t.com | www.88807w.com | www.hg8561.com | www.8148.com | www.lj559.com | www.3846j.com | www.8850w4.com | www.00778j.com | www.60886u.com | www.js27666.com | www.yh07.com | www.7782l.com | www.954688.com | www.603924.com | www.068671.com | 377ib.com | 365644.com | 20160913.site | jj40033.com | 85698z.com | P35k.com | www.40818b.com | www.wf5588.com | www.k3374.com | www.19yh3.com | www.7225q.com | www.126629.com | www.77210j.com | www.hczx6.com | www.344747.com | 11683344.com | w9625.com | swtyfff.com | 28288dd.com | www.bf855.com | www.ljw035.com | www.36649.com | www.4078i.com | www.u63568.com | www.35918c.com | www.763227.com | js345w.com | 5804v.com | 565578.com | 2643x.com | www.67797k.com | www.jty449.com | www.0077xpj.net | www.hg1115.com | www.5522o.cc | www.399146.com | 87665c.com | 4694t.com | le888s.com | www.7025c.com | www.soxi588.com | www.u3410.com | www.61233s.com | www.635918.com | 5456r.com | 08450.com | 22556b.com | www.16635.com | www.rycp167.com | www.tai3366.com | www.556zf.com | 5622m.com | blm733.com | yh2014.com | www.70.tt | www.cp55569.com | www.55676u.com | www.33ckb.com | yl-26.com | wn99wn.com | 9995j.cc | www.362838.com | www.58665o.com | www.ejylc19.com | www.820585.com | 28288nn.com | 33389.cc | www.6491o.com | www.c559cc.com | www.9996tt.com | www.847377.com | 116005.com | 4182x.com | www.as0001.com | www.751cp3.com | www.fg9904.com | www.771219.com | hg999333n.com | ylzz3338.com | www.7380e.com | www.klcp3jc.com | www.97655n.com | www.177564.com | pj8114.com | 3434uuu.com | www.64566t.com | www.xpj9.net | www.921599.com | 1859.com | t666c.com | www.17977.com | www.l3410.com | www.c132.vip | 5509.com | 83138u.com | www.838967.com | www.c93919.com | www.680358.com | 3424z.com | ys5588.com | www.kjlhc.cc | www.02365.cc | 36088.com | 4488sss.com | www.00829o.com | www.7366001.com | www.936336.com | 11zz8331.com | 38-365-365.com | www.1389hh.com | www.81678c.com | 149301.com | rf033.com | www.77605z.com | www.7886277.com | www.221075.com | 9068e.com | www.4972ss.com | www.33678yy.com | www.799425.com | 881133xl.com | www.7amc.com | www.694916.com | www.912273.com | 999hg.com | www.44466638.com | www.7893w38.com | www.769211.com | 44335156.com | www.20909o.com | www.dingxin999.xin | www.526170.com | 4451133.com | www.55155g.com | www.68365l.com | www.197093.com | ccc3405.com | www.3939mmm.com | www.708282.com | 1422b.com | 425511.com | www.66867.com | www.19czj.com | 1705c.com | www.477745.com | www.32031g.com | www.118428.com | yy7742.com | www.82142.com | www.1477w.com | 12772266.com | www.8494y.com | www.40288c.com | www.155792.com | pjqinghai.com | www.1274uu.com | www.5086w.com | 99567o.com | www.114suncity.com | www.7886263.com | p47479.com | 55155d.com | www.91779.com | www.177502.com | 44552007.com | www.938968.com | www.810706.com | lc99r.com | www.xg611.com | www.022n.cc | 209dh.com | www.6888tm.com | www.59988.cc | g85686.com | www.717012.com | www.66653x.com | 3246.com | www.sun235.com | www.89888.com | 914910.com | www.0860c.com | www.96386k.com | 06382525.com | www.5364d.com | www.61655w.com | wnsr6800.com | www.zb933.com | www.25688p.com | 4880i.com | www.05789.com | www.an966.com | 4018l.com | www.55526o.com | www.547077.com | 62222u.com | www.4996hz.com | 1168z.com | 1119193.com | www.096968.com | bcylc88.com | www.s783.com | www.65719.cc | 444000sss.com | www.4567749.com | www.564696.com | 66136xpj.com | www.79095w.com | 3992535.com | www.753055.com | www.7714f.com | hg999333b.com | www.bbb839.com | www.602472.com | BY30832.com | www.40288w.com | 34w35.com | www.1818xpj.com | www.wycp2.com | 365102.com | www.3066rr.com | 6137h.com | www.58777u.com | www.24czj.com | wx2277.com | 3mgmrrr.com | www.sun00.com | www.2875i.com | 61325544.com | www.357076.com | 8522mmmm.com | www.kelake77.com | www.df76.com | 808cp.org | www.742688.com | 00778b.com | www.kk6444.com | www.349277.com | a1064.com | www.0099wd.com | 4466303.com | www.365033.bet | 500000791.com | www.y18001.com | www.cai009.vip | 192160.com | www.198a56.com | 15q15.net | www.15223.com | 3844o.com | www.pj8288.com | www.803244.com | 99111cc.com | www.99383.com | 01234bb.com | www.33678qq.com | 01234p.com | www.0409.com | p888p888.com | www.362833.com | www.929709.com | 7141hh.com | www.79579.com | zd6161.com | www.jjssss.com | 137.vg | www.38345u.com | 915904310.com | www.long86.net | www.51515t.com | www.3336358.com | www.723035.com |