• <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.26878e.com | www.354277.com | www.32666i.com | www.96386u.com | www.4394.com | js89i.vip | www.10999f.com | 2003822.com | www.9g9g9g.com | 8808555.com | www.c4523.com | www.5441d.com | www.hjin2.com | www.929533.com | www.802633.com | www.627029.com | www.356036.com | 84494477.com | 30019pp.com | 2007.com | 9679t.com | 1813l.com | c96sg2.com | 4036e.com | 500000891.com | xpj000555.com | eee67890.com | www.29277f.com | www.7435w.com | 29918c.com | www.4136q.com | dd01234.com | www.8499g.com | www.166242.com | df8x.com | v99932.com | www.js003.cc | www.1233789.com | www.cai51.com | www.40288u.com | www.9996tt.com | www.12455m.com | www.915655.com | www.178357.com | 6699734.com | le888p.com | 4465v.com | 33115ee.com | www.1818618.com | www.2078u.com | www.4123g.app | 08778f.com | www.3zq01.com | www.2ag88.com | 2846s.com | 81366s.com | 667766i.com | bwin8b.com | www.556zr.com | www.32666m.com | www.b8444.com | www.40288z.com | www.299488.com | www.520935.com | www.32126x.net | www.qml1.com | www.dz826.com | www.937160.com | 55984u.com | www.hm2277.com | www.56733r.com | www.976357.com | www.cn365y.com | 2096e.com | www.66653u.com | www.64566e.com | 8742d.com | m88.com | www.88599.com | www.76543p.com | 1017v.com | www.ascp0.com | www.e456x.com | www.789668.net | www.hjdc2005.com | www.5091o.com | www.136305.com | 1288dd.com | a5959.com | www.88807n.com | www.79500h.com | www.350c8.com | www.91233p.com | www.h6620.com | www.hv1818.com | feicai0513.com | www.hg8235.com | www.988046.com | 1449b.com | 131www.net | www.83568q.com | www.965666.com | qycps7.com | www.zsdl9.com | www.8998786.com | 官网捕鱼1.com | ddcp11.com | www.18997.com | www.9155b.cc | 3559kkk.com | www.80689.com | www.47506h.com | www.234259.com | 45637p.com | www.1299js.com | www.nnw6.com | xpj5009.com | www.6699mmmm.com | www.36788q.com | 7894z.com | www.10899a.com | www.388158.com | 5577vn77.com | www.sb8002.com | www.5446l.com | j35151.com | am5858.cc | www.0052737.com | www.295570.com | 4182006.com | www.z456x.com | www.846661.com | 3552p.com | www.ty66.com | www.4ttz.com | c89od261.com | www.3122t.com | www.911924.com | 86611l.com | www.922646.com | www.fo64.com | 32212c.com | www.hp5868.com | www.849798.com | xx4255.com | www.786555.com | www.679610.com | 2012bet9.com | www.hg8cc.com | www.317097.com | 253508.com | www.4996fj.com | www.49956o.com | 3156yyy.com | www.73990s.com | 4270cc.com | www.8807js.com | www.x66789.com | sha9909.com | www.yh8489.com | www.5522k.cc | 11005p.com | www.6880ii.com | 99044.com | www.yh1111.cc | www.84499k.com | 33382jj.com | www.tk48.com | www.662517.com | 2757p.com | www.64566f.com | 7874.tt | www.00618j.com | www.84499.cc | q2490.com | www.89677q.com | 8894vip2.com | www.am4088.com | www.3890i.com | 3405fff.com | www.4136o.com | ybc17.com | www.333133v.com | www.3126u.com | 23599m.com | www.4694x.com | 0208065.com | www.0679555.com | www.26878s.com | 7003xx.com | www.3157n.com | love102.com | www.09569i.com | www.bxcp4.com | 68228g.com | www.299770.com | 563460.com | www.1156oo.com | w69441144.com | www.hg1098.com | www.3552f.com | 66882007.com | www.7240k.com | blmdc6.com | www.938k.cc | bbxylqq.com | www.32666q.com | www.982090.com | 364830.com | www.93gj01.com | 879.com | www.88166x.com | zhcp88.com | www.hg2808.com | www.187393.com | www.wnsr288.com | www.hcjt4.com | 8030d.com | www.sx1899.com | n82365.com | www.4521h.com | 38238y.com | www.c526688.com | 36401111.com | www.8888883.com | www.35155e.com | www.4853c.com | www.802133.com | 1156qq.com | www.8816x.com | 2190z.com | www.39096.com | 7003t.com | www.535082.com | 37688u.com | www.1851137.com | 118888777.com | www.68hyc.com | 30006s.com | www.pj5538.com | 4631122.com | www.888ding.com | 33928.com | www.66333666.com | 2306f.com | www.9005b.com | o72227.com | www.532156.com | 7742w.com | www.3534y.com | 8036vv.com | www.026789.com | 08530001.com | www.569393a.com | hg168o.com | www.67333.com | hb7.com | www.178tyc.com | 2381006.com | www.hg126u.com | 01w00.vip | www.c32537.com | 22205pj.com | www.53097777.com | 30175544.com | www.7920x.com | 22098x.com | www.mgm777c.com | 38850088.com | www.77803c.com | 2496.com | www.ascp00.com | www.589234.com | www.917699.com | www.vns71999.com | www.309825.com | www.884554.com | hga030.com | www.dafabetedfa95.com | 15856r.com | www.0669777.com | 8901.com | www.hg7022.com | 73884.com | www.50732s.com | blg008.com | www.712887.com | www.pj21399.com | 0234ff.com | www.61msxfpt2.com | 54140044.com | www.cc4625.com | v997.com | www.c3714.com | www.7025r.com | 155333.com | www.7759333.com | 168cp-i.com | www.18617.com | 9649l.com | www.089b.cc | www.36536509.com | 0015tt.com | www.uc.cc | 4167r.com | www.96386l.com | 44335003.com | www.375916.com | www.hg0189.com | 2158wx.com | www.6880ee.com | xpj61788.com | www.901381.com | www.hg1733.com | 6220cc.com | www.5189222.com | wlb66.com | www.3933s.cc | www.330099u.com | 40168.com | www.sha0055.com | 77606f.com | www.8667r.com | www.a22365.com | 500000379.com | www.sha0022.com | dwj15.com | www.962505.com | www.vns1668.cc | dlzzx.com | www.5446f.com | 4131.com | www.554363.com | www.190089.com | 66300.org | www.6666bj.com | www.bojue68.com | qq365d.com | www.xpj2090.com | 7555e.com | www.qmkl5.com | www.hg94777.com | 838388a.com | www.3691g.com | 38345b.com | www.52072g.com | www.38345y.com | v5429.com | www.912485.com | www.34656.com | 80567i.com | www.53539.cc | www.04762004.com | 2618l.com | www.50051hh.com | www.63877g.com | yin3131.com | www.3w555.com | 5446q.com | yk102.com | www.3066bb.com | 4395599.com | www.193006.com | www.5446qq.com | fc9818.com | www.362588.com | www.4496877.com | 55331ww.com | www.529081.com | www.85857f.com | 2757q.com | www.551030.com | www.99393.com | 22299ll.com | www.481770.com | www.55545i.com | 0208077.com | www.66653i.com | www.068717.com | 9030m.com | kjzf224.com | www.js89c.vip | www.vbo66.net | 70118h.com | www.001170.com | www.h27229.com | lehu558.com | www.3668aa.com | www.99828.com | youle296.com | www.035079.com | www.588875.com | ee360360.cn | 426601.com | www.3zq02.com | www.9374k.com | sbd026.net | www.877719.com | www.90644.com | feicai0457.com | jsp36.com | www.y94600.com | www.lbgj.com | 2064hb.com | www.911710.com | www.4694k.com | gbhs999.com | 3405aaa.com | www.73166h.com | www.166347.com | iii3405.com | www.84499a.com | www.12345601.cc | www.88msc.la | 40033ooo.com | www.178719.com | www.4102l.com | www.4972ww.com | 01234ggcom | www.567620.com | www.http://448378.com/ | www.28758y.com | 1389jj.com | www.687044.com | www.i063801.com | www.2090955.com | 58222ii.com | www.602471.com | www.908818.com | www.866890.com | 0033buyu.com | www.316106.com | www.792063.com | www.20161166.com | 5080.cc | 1435.tv | www.7239z.com | www.518999.com | hgyz5.com | 03508.com | www.3478u.cc | www.4446aaa.com | www.682855.com | 0234t.com | www.278202.com | www.581137.com | www.886662.com | 2844o.com | z7454.com | www.876061.com | www.79095j.com | www.0151u.com | tz458.com | 01234aaa.com | www.hczx2.com | www.7225a.com | www.55268oo.com | 38244e.com | 566670000.com | www.8039z.com | www.00773a.com | www.v3302.com | 8159eee.cc | ww5443.com | www.2350g.com | www.g69096.com | www.67797v.com | bet36550000.com | 8742gg.com | www.c5836.com | www.38775rr.com | www.wns4567.com | 3178y.com | 500000357.com | www.156518.com | www.73736b.com | www.71071i.com | www.7893w62.com | 09797.com | 4196y.com | www.196103.com | www.77114l.com | www.hg8ww.com | www.2229193.com | 2767e.com | 123456yy.cc | 0008c.com | www.108.gg | www.2566y5.com | www.am4567.com | www.lhg555.com | 96678.com | 0652a.com | www.210883.com | www.33598j.com | www.pj1308.com | www.hg6613.com | www.k8.com | 555445.com | 444000hh.com | www.101698.com | www.5522u.cc | www.bet686.com | www.qmc0077.com | www.2626sun.com | 3245g.com | hg793.com | 2013011.com | www.374311.com | www.16878t.com | www.3w28.com | www.hf9018.com | www.5364d.com | 2820w.com | y7062.com | 1312166.com | www.178759.com | www.9478s.com | www.883399a.com | www.77731s.com | www.42842814.com | www.56733v.com | 68228y.com | 5360uu.com | 33331.com | www.037169.com | www.152012.com | www.9646p.com | www.20000.cc | www.hjcp5.com | www.58557q.com | www.ylg5755.com | 8381s.com | 1h-9.cc | 33599tt.com | 30176699.com | www.372779.com | www.070.la | www.6666bj.com | www.biying990vip.com | www.0077jj.com | www.ljw036.com | www.hg05567.com | 35252v.com | 3807oo.com | 5745222.com | 9420e.com | 8520q.com | www.533721.com | www.022o.cc | www.yh76g.com | www.8905r.com | www.o32939.com | www.856046.com | www.hg1787.com | www.631155.com | 1483ww.com | 1916x.com | 6146m.com | 4182j.com | 66578.com | 1114661.com | 22wb8.com | www.096386.com | www.585116.com | www.cp8004.cc | www.5854w.cc | www.68682m.com | www.9996qq.com | www.0600f.cc | www.678js666.com | www.4136s.com | www.27363e.com | www.76775a.com | www.53699.com | www.2078m.com | www.67797x.com | www.dhy2929.com | l83377.com | 9030m.com | 88770.com | 86811kk.com | 33318b.com | 8037uu.com | amhg007.com | 50067h.com | 33432s.com | 294546.com | 288-6.com | 3778.com | 3566nn.com | 38238y.com | l2146.com | v2894.com | 111000ii.com | 027659.com | swtynnn.com | vns.com | 45638.com | 5787.cc | 18438555.com | 76116666.com | 2147001.com | 205.com | 2864s.com | 20772233.com | 316.cc | 4880w.com | i32365.com | 0693j.com | bet555888.cc | 3640g.com | 39199y.com | 3726m.com | 8977mm.com | a72227.com | jsjlb5.com | 8901x.com | 88535f.com | www.wns8848.com | www.vns68.com | www.655666g.com | www.33569900.com | www.3730-251.com | www.10852b.com | www.999530.com | www.a81b.cc | www.50999p.com | www.5981a.com | www.9822ad.com | www.78680r.com | www.997287.com | www.702056.com | www.32123k.com | www.66ffk.com | www.810603.com | www.381110.com | 4195y.com | 64898d.com | 3775x.com | 88894a.com | rbbet.com | 47749z.com | r2306.com | 1288ss.com | www.1818810.com | www.88807e.com | www.hg0198.com | www.87669.com | www.138cpn.com | www.4136t.com | www.07679l.com | www.913393.com | www.36788n.com | www.179012.com | www.343918.com | 2349014.com | j86811.com | 01234h.com | 205500853.com | 3844m.com | www.1818810.com | www.jyd900.com | www.1389mm.com | www.4996jx.com | www.55717u.com | www.33112h.com | www.901512.com | www.099816.com | vv56988.com | 62077.net | 76886m.com | 62620029.com | www.h30226.com | www.k3322.com | www.8313f.com | www.n94600.com | www.77802b.com | www.978960.com | www.003851.com | 2373h.com | 074o7.com | 2078y.com | www.9566948.com | www.a80070.com | www.20199ff.com | www.66pjjt.com | www.66376n.com | www.757309.com | dzj.org | vip31445.com | 40033h.com | 5856.com | www.wanda00.com | www.jz787.com | www.l94600.com | www.9205g.com | www.347177.com | 4255sss.com | u21148.com | 3844xx.com | www.n30226.com | www.jsc9558.com | www.0600n.cc | www.7793m.com | www.309825.com | e1458.com | 82365s.com | 3424d.com | www.699a.cc | www.sha8000.com | www.4323t.com | www.602475.com | 2595r.com | 5350l.com | 75991q.com | www.zjlygm.cn | www.8473t.com | www.7239y.com | www.575872.com | 1168p.com | 51335.co | www.7435i.com | www.ylc366.com | www.52062m.com | www.ovfd2.com | 8036a.com | tt888l.com | ca7099.com | www.hg151.com | www.3824.com | www.9928aa.com | js345d.com | 918tx.com | 219275.com | www.538598.com | www.33678vv.com | www.2632b.com | 55984x.com | 53166u.com | 26444a.com | www.4763666.com | www.3116e.com | www.41518f.com | 66300vip13.com | zjgcfc.com | 5517.com | www.d9008.com | www.6939o.com | www.584911.com | 728eee.com | 365102f.com | www.81228m.com | www.7225h.com | www.3933c.com | 01234k.com | 4018g.com | www.85770h.com | www.089.cc | www.68682g.com | 691 | 51133zzz.com | www.76060r.com | www.n3065.com | www.55228l.com | 5804m.com | 66287l.com | www.bet36576.com | www.9737gg.com | www.5086q.com | 875856b.com | p88812.com | www.17828z.com | www.5446q.com | www.652291.com | w7770.com | 5651d.com | www.lefa3333.com | www.66653p.com | bcbm777.com | 62222t.com | www.142351.com | www.220518.com | www.606865.com | 861224.com | www.358msc.com | www.hg1044.com | www.1368q.cc | 496jj.com | ttt2848.com | www.1389dd.com | www.61655z.com | 3156eee.com | 00774dd.com | www.3494.cc | www.6666bj.com | 3339193.com | ambc8899.net | www.xpj9780.com | www.e98478.com | www.81233o.com | 77260088.com | www.yh9333.com | www.68993269.com | 32424f.com | zr7377.com | www.88993h.com | www.85330.com | 23800l.com | 2018mxc.com | www.227777.com | www.35155x.com | 5804s.com | xpj55658.com | www.19019x.com | www.rcw8800.com | 7742rr.com | www.hg558.com | www.535087.com | www.178532.com | 5004xx.com | www.433345.com | www.68568j.com | 1434b.com | 06064688.com | www.4136m.com | www.708382.com | 23599s.com | www.xhtd05.com | www.hg09d.com | long2268.com | ff63777.com | www.57800x.com | www.645880.com | ii4119.com | www.589tyc.com | www.50054q.com | feicai0878.com | www.xpj1144.cc | www.k2894.com | www.77801o.com | 86811h.com | www.http://976880.com/ | www.fcyl4.com | 444000xx.com | www.v0022.tv | www.bet73o.com | 52688u.com | www.23426b.com | www.5599nsb.com | 61327711.com | byyl.com | www.93955d.com | www.130883.com | df8d.com | www.8967i.com | www.603294.com | xym97.com | www.b8444.com | www.897743.com | 59199.com | www.t7888.com | www.dqz7.com | 56787gg.com | www.xpj269.com | www.3890d.com | 99888l.me | www.9822msc.com | www.3126n.com | 3778802.com | www.qq349.com | www.1035g.com | cao618.com | www.030033.com | www.gczj2.com | 86611z.com | www.t0524.com | www.912451.com | 7003u.com | www.e456x.com | www.602917.com | p888rr.com | www.4136j.com | www.065966.com | zhcp91.com | www.3337795.com | s4048eee.com | www.bm1102.vip | www.78919h.com | 3616t.com | www.7830r.com | www.61655x.com | 3844r.com | www.171717.cc | www.973320.com | hh38648.com | www.515917.com | www.181599.com | 2373.com | www.285628.com | xinshijiylc6.com | www.7893w41.com | www.52303s.com | 08778n.com | www.988778.com | www.550415.com | 063971.com | www.w84z.com | nck5273.com | www.xjs8891.com | www.25688m.com | 8159d.cc | www.1168c.com | www.028314.com | 1859008.com | www.2324.com | 86811vv.com | www.466766.com | www.566668.com | 22296rr.com | www.578888.vip | 73567tg18.com | www.xpj661199.com | www.869576.com | 76886q.com | www.8905o.com | 4694q.com | www.hg8549.com | www.599399.com | 56988i.com | www.725518.com | 00ww8331.com | www.7302004.com88 | www.358268.com | 4123ee.com | www.02088.com | 4261.com | www.hg173j.com | 20778866.com | www.yf156.com | www.138136a.com | zzz8827.com | www.7249p.com | 2146o.com | www.b948b.com | 1919xpj.com | www.aaa6199.com | www.cp3158.com | 97q.com | www.win1231.com | 2618l.com | www.bfcaip.am | 1077bb.com | www.xpj5005.com | www.674007.com | bcw3666.com | www.84499c.com | p4389.com | www.f12189.com | 23300e.com | www.09883.com | P35gg.com | www.333133j.com | www.868422.com | 73999e.com | www.66652b.com | 8801885.com | www.56011v.com | 3089s.com | www.4694a.com | wd0000.com | www.555575.com | 5622m.com | www.1238760.com | www.630155.com | www.bmcp1344.com | 110770.com | www.h6610.com | uc375.com | www.5182889.com | jszg2.com | www.998855z.com | 3024h.com | www.js1108.com | www.035989.com | www.msc08.com | www.628867.com | www.hj5888.com | www.hx1113.com | 8790f.com | www.6832v.com | 883399g.com | www.65707q.com | 2334vip10.com | www.588vip.top | xuxrbmlu.cn | www.731651.com | 41188833.com | www.750041.com | 9068i.com | www.xpj8118.com | 5627.com | www.12136m.com | 06385959.com | www.q3410.com | 69111u.com | www.1754h.com | 496ss.com | www.115496.com | 28839s.com | www.xj7009.com | vv879404.com | www.vnsr928.com | 3822s.com | www.8905v.com | d3405.com | www.48330a.com | 346770.com | www.sdsy.com | 7434.com | www.78949c.com | 6220j.com | www.9356f.com | 51335u.com | www.hy2733.com | www.7hg88.com | www.718568.com | www.www7893.cc | www.303472.com | www.hg1187.com | 11422y.com | www.25000c.com | 91019v.com | www.535666.com | 4995x.com | www.33112211.com | 492dh.com | www.778305.com | 1775a.com | www.?junzi8888.com | 7989i.com | www.9818j.cc | 88904242.com | www.715699.com | www.j30226.com | www.52072i.com | www.312778.com | 2140099.com | www.jz787.com | 2172299.com | www.1764.com | 22299hh.com | www.26299b.com | 3mgmsss.com | www.622230.com | www.6suncity.com | 55ww8332.com | www.zte111.com | 3mgmddd.com | www.588860.com | 3950s.com | www.77114l.com | yin3333.com | www.649677.com | www.11188807.com | wap.pj5556.com | www.a11166.com | 0208ii.com | www.179101.com | wfcp666777.com | www.936370.com | www.330099y.com | 76543l.com | www.qm999.com | 80188e.com | www.89777b.com | 6220kk.com | www.493306.com | www.pj5744.com | 78249.com |