日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

你可能不知道的 ZooKeeper 知识点

發(fā)布時(shí)間:2024/1/1 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 你可能不知道的 ZooKeeper 知识点 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文作者:HelloGitHub-老荀

Hi,這里是 HelloGitHub 推出的 HelloZooKeeper 系列,免費(fèi)開源、有趣、入門級(jí)的 ZooKeeper 教程,面向有編程基礎(chǔ)的新手。

項(xiàng)目地址:https://github.com/HelloGitHub-Team/HelloZooKeeper

今天我要介紹些 ZK 的隱藏功能,廢話不多,讓我們開始吧~

一、JMX

JMX(Java Management Extensions,即 Java 管理擴(kuò)展)是一個(gè)為應(yīng)用程序、設(shè)備、系統(tǒng)等植入管理功能的框架。JMX 可以跨越一系列異構(gòu)操作系統(tǒng)平臺(tái)、系統(tǒng)體系結(jié)構(gòu)和網(wǎng)絡(luò)傳輸協(xié)議,靈活的開發(fā)無縫集成的系統(tǒng)、網(wǎng)絡(luò)和服務(wù)管理應(yīng)用。

是不是聽不懂?聽不懂就對(duì)了,如果你從來沒有開發(fā)過 JMX 或者應(yīng)用過的話,我這里就簡(jiǎn)單介紹下:JMX 就是 Java 提供的一個(gè)標(biāo)準(zhǔn),這個(gè)標(biāo)準(zhǔn)可以將一些有需要的 Java 對(duì)象運(yùn)行時(shí)的狀態(tài)暴露出去(這些對(duì)象可以叫 MBean),一般是用于監(jiān)控或者運(yùn)行時(shí)修改一些配置信息。

我們既然是講解 ZK,那么我現(xiàn)在就有問題了,現(xiàn)在我手里有一個(gè)簡(jiǎn)單 ZK 集群正在運(yùn)行,我想知道哪個(gè)節(jié)點(diǎn)是 Leader,怎么辦?

首先 ZK 本身在啟動(dòng)的時(shí)候就會(huì)主動(dòng)將一些對(duì)象注冊(cè)成為 MBean,而我們直接使用 Java 自帶的工具 jconsole 就能查看,下面我演示下,我這里有一個(gè)簡(jiǎn)單的 ZK 集群:

$?jps 5266?QuorumPeerMain 2964 10438?Jps 4550?Launcher 5286?QuorumPeerMain 5767?JConsole 5388?QuorumPeerMain 9215?Launcher

可以看到有三個(gè) QuorumPeerMain 的進(jìn)程,就代表了這個(gè)集群的三個(gè)節(jié)點(diǎn)。

下面我們使用 jconsole 打開該工具(安裝了 jdk,這個(gè)工具就自動(dòng)擁有了)

$?jconsole

隨便選擇一個(gè) ZK 的進(jìn)程,選擇連接即可。

JMX 不光光可以看對(duì)象的屬性也可以執(zhí)行一些方法,比如:

圖中顯示操作的地方都是可以在右側(cè)找到一個(gè)按鈕進(jìn)行調(diào)用的(還可以傳參),關(guān)于 ZK 中 JMX 更多的細(xì)節(jié),我這里暫時(shí)不披露了,之后有機(jī)會(huì)單獨(dú)講解,反正大家只需要知道 JMX 就是將一些普通 Java 對(duì)象暴露出去,可以通過工具查看屬性或者調(diào)用該對(duì)象的方法的一個(gè)標(biāo)準(zhǔn)。

二、四字命令 與 Admin Server

剛剛那個(gè) JMX 查看還是比較麻煩的,因?yàn)楝F(xiàn)在我們測(cè)試訪問的是我本地的進(jìn)程,如果是遠(yuǎn)程的 JVM 進(jìn)程,用 jconsole 訪問起來就更麻煩了,有沒有簡(jiǎn)單一點(diǎn)的方法??隙ㄊ怯?#xff01;ZK 本身支持了一些四字命令(4lw)用于和服務(wù)端進(jìn)行交互。

我這里做一個(gè)簡(jiǎn)單的演示,我本地的集群的客戶端端口分別是:2181、2182、2183,我通過 telnet 命令隨便連接上一個(gè)節(jié)點(diǎn):

$?telnet?localhost?2181 Trying?::1... Connected?to?localhost. Escape?character?is?'^]'.

就會(huì)進(jìn)入交互模式,然后輸入 srvr 按下回車,就能得到以下輸出

$?telnet?localhost?2181 Trying?::1... Connected?to?localhost. Escape?character?is?'^]'. srvr Zookeeper?version:?3.6.2--803c7f1a12f85978cb049af5e4ef23bd8b688715,?built?on?09/04/2020?12:44?GMT Latency?min/avg/max:?0/3.8261/44 Received:?30 Sent:?29 Connections:?1 Outstanding:?0 Zxid:?0x100000009 Mode:?leader Node?count:?6 Proposal?sizes?last/min/max:?48/48/94 Connection?closed?by?foreign?host.

srvr 命令就是用來查看服務(wù)節(jié)點(diǎn)的狀態(tài)的,從輸出中的 Mode 字段就能看到,監(jiān)聽 2181 端口的這個(gè)節(jié)點(diǎn)就是 Leader,我們?cè)贀Q一個(gè) 2182 節(jié)點(diǎn)看看,Mode 就是 Follower。

$?telnet?localhost?2182 Trying?::1... Connected?to?localhost. Escape?character?is?'^]'. srvr Zookeeper?version:?3.6.2--803c7f1a12f85978cb049af5e4ef23bd8b688715,?built?on?09/04/2020?12:44?GMT Latency?min/avg/max:?0/0.0/0 Received:?3 Sent:?3 Connections:?1 Outstanding:?0 Zxid:?0x100000009 Mode:?follower Node?count:?6 Connection?closed?by?foreign?host.

這里要提一下默認(rèn)的四字命令不是全部打開的,如果想要啟用所有的四字命令需要在環(huán)境變量中指定 zookeeper.4lw.commands.whitelist=*,也可以通過列出具體的命令(逗號(hào)分隔)來啟用指定的一些四字命令。我們?cè)贀Q個(gè)命令看看吧,比如 envi,就會(huì)輸出當(dāng)前節(jié)點(diǎn)的環(huán)境參數(shù)

java.io.tmpdir=/var/folders/19/bx8xsqgd1c78g5j1mt_zq5v80000gp/T/ java.compiler=<NA> os.name=Mac?OS?X os.arch=x86_64 os.version=10.16 user.name=junjiexun user.home=/Users/junjiexun user.dir=/Users/junjiexun/develop/zk os.memory.free=101MB os.memory.max=889MB os.memory.total=123MB

我這里列一下所有的四字命令的作用,具體就不演示了,留給讀者自己嘗試吧,官網(wǎng)四字命令列表,四字命令其實(shí)就是它右邊命令的別名而已,作用是完全一樣的。(* 依舊表示 TODO,之后開篇單講)

命令返回?cái)?shù)據(jù)的作用
conf / configuration配置信息(常用的 dataDir、clientPort 等)
cons / connections連接信息
crst / connection_stat_reset重置連接統(tǒng)計(jì)信息
dump會(huì)話信息和臨時(shí)節(jié)點(diǎn)
envi / environment環(huán)境變量信息(os.name、user.home 等)
ruok服務(wù)是否正常
srst / stat_reset重置統(tǒng)計(jì)信息
srvr / server_stats服務(wù)端信息概覽
stat服務(wù)端信息統(tǒng)計(jì)
wchs / watch_summary回調(diào) watcher 的匯總
wchc / watches注冊(cè)回調(diào)的 session 信息匯總
dirslog 和 snap 文件字節(jié)大小
wchp / watches_by_path注冊(cè)回調(diào)的路徑信息
mntr / monitor所有監(jiān)控信息
isro / is_read_only當(dāng)前節(jié)點(diǎn)是否是只讀
hash數(shù)字摘要
gtmk / get_trace_mask*獲取跟蹤掩碼
stmk / set_trace_mask*設(shè)置跟蹤掩碼
lsnp / last_snapshot最后一次快照的信息
icfg / initial_configuration服務(wù)端啟動(dòng)初始配置
orst / observer_connection_stat_reset重置 Observer 連接統(tǒng)計(jì)信息
obsr / observers獲取 Observer 的信息
sysp / system_properties環(huán)境變量信息和 envi 不同的是會(huì)返回 zookeeper 開頭的自定義配置
lead / leader當(dāng)前節(jié)點(diǎn)是否是 Leader
voting_view集群選票信息
zabstateZAB 狀態(tài)信息匯總

我還看到了 ruok,用來查看服務(wù)器節(jié)點(diǎn)是否啟動(dòng)(能成功返回不代表能對(duì)外提供服務(wù) )

除了通過 telnet 方式去調(diào)用 ZK 提供的四字命令,ZK 還提供了一個(gè)更友好的方式就是 Admin Server。

ZK 在啟動(dòng)后,默認(rèn)會(huì)監(jiān)聽本機(jī)的 8080 端口并啟動(dòng)一個(gè) Jetty 容器作為 Web 服務(wù)器,如果訪問該端口下的 /commands 路徑的話會(huì)得到:

直接訪問這些超鏈接就可以擁有和之前四字命令一樣的效果~也可以直接在 URL 上訪問 ip:port/commands/<commandName>。

以 mntr為例,可以直接訪問 http://localhost:8080/commands/mntr 或者 http://localhost:8080/commands/monitor 都是一樣的。

因?yàn)?Admin Server 默認(rèn)就是啟用的,而且接受來自任何 IP 的請(qǐng)求,為了安全考慮的話可以通過配置環(huán)境變量 zookeeper.admin.serverAddress=10.3.54.12,類似這樣增加請(qǐng)求的 IP 的要求或者直接通過 zookeeper.admin.enableServer=false 禁用 Admin Server。

ZK 官方是推薦直接使用 Admin Server 的,來替代命令行的四字命令的,基于這些官方的接口是可以做一些 ZK 監(jiān)控平臺(tái)的。

三、動(dòng)態(tài)配置

ZK 的集群配置一般都是在啟動(dòng)的時(shí)候通過讀取配置文件,之后就不會(huì)再變更了,并且如果我要為集群添加一個(gè)新的節(jié)點(diǎn),需要修改配置文件再重啟方才能生效的。

但是在 3.5.0 之后, ZK 更新了動(dòng)態(tài)配置的功能,集群的配置不再需要停機(jī)重新配置,可以在運(yùn)行時(shí)直接修改,可以直接為集群增刪節(jié)點(diǎn),修改他們的角色,甚至可以修改集群的計(jì)票規(guī)則!是不是碉堡了!

3.1 計(jì)票規(guī)則

在此之前,我先介紹下 ZK 支持的兩種計(jì)票規(guī)則。

3.1.1 過半機(jī)制

這是 ZK 默認(rèn)的計(jì)票規(guī)則,用于各種服務(wù)端集群需要 ACK 的場(chǎng)景,假設(shè)現(xiàn)在的配置是這樣:

server.1=zoo1:2888:3888:participant server.2=zoo2:2888:3888:participant server.3=zoo3:2888:3888:participant server.4=zoo4:2888:3888:observer server.5=zoo5:2888:3888:observer

因?yàn)?Observer 是不會(huì)算入選票的,實(shí)際參與的機(jī)器是前三個(gè)節(jié)點(diǎn):1、2、3

先不管 Leader 是誰,默認(rèn)的計(jì)票規(guī)則需要這三個(gè)節(jié)點(diǎn)中的至少兩個(gè)成功提交 ACK(或是其他需要計(jì)票的信息),這個(gè)選舉(或者提案)才能被繼續(xù)提交,這就是過半機(jī)制。

3.1.2 分組權(quán)重

ZK 還提供了一個(gè)新的計(jì)票規(guī)則,這個(gè)規(guī)則支持將各個(gè)節(jié)點(diǎn)分成不同的組(當(dāng)然也可以只有一個(gè)組),同一個(gè)組中的不同節(jié)點(diǎn)也可以被分配成不同的權(quán)重,我舉個(gè)例子:

group.1=1:2:3 group.2=4:5:6:7:8 group.3=9weight.1=1 weight.2=1 weight.3=1 weight.4=1 weight.5=1 weight.6=1 weight.7=1 weight.8=1 weight.9=1

group 開頭和 weight 開頭分別對(duì)應(yīng)了分組和權(quán)重的配置,規(guī)定如下:

  • group 的格式是 group.<groupId>=<serverId>:<serverId>...

  • weight 的格式是 weight.<serverId>=<weight>

  • serverId 就是每一個(gè)服務(wù)節(jié)點(diǎn)配置在 myid 中的數(shù)字

  • 每一個(gè)節(jié)點(diǎn)只能屬于一個(gè) group

那以我現(xiàn)在配置的情況繼續(xù)說明的話,現(xiàn)在一共有三個(gè) group,分別的權(quán)重計(jì)算如下 :

group1?的權(quán)重總和?=?server1?的權(quán)重?+?server2?的權(quán)重?+?server3?的權(quán)重?=?1?+?1?+?1?=?3 group2?的權(quán)重總和?=?server4?的權(quán)重?+?server5?的權(quán)重?+?server6?的權(quán)重?+?server7?的權(quán)重?+?server8?的權(quán)重=?1?+?1?+?1?+?1?+?1?=?5 group3?的權(quán)重總和?=?server9?的權(quán)重?=?1

假如現(xiàn)在成功 ACK 的服務(wù)節(jié)點(diǎn)有 1、4、5、8、9 并以這樣的配置進(jìn)行計(jì)票的話

  • 首先看 group1 只有 server1 成功回復(fù) ACK,權(quán)重值為 1,并未超過 group1 權(quán)重總和 3 一半以上,所以 group1 相當(dāng)于 ACK 失敗了

  • 再看 group2 有 4、5、8 三個(gè)節(jié)點(diǎn)成功回復(fù) ACK,權(quán)重值為 3,超過了 group2 權(quán)重總和 5 的一半以上(3 > 5/2),所以 group2 ACK 成功

  • 然后看 group3,因?yàn)橹挥幸粋€(gè)節(jié)點(diǎn) 9,并成功回復(fù) ACK,所以也滿足了超過 group3 權(quán)重總和 1 的一半以上(1 > 1/2),所以 group3 ACK 成功

  • 最后統(tǒng)計(jì)成功 ACK 的 group 數(shù)量是否超過整體 group 數(shù)量的一半以上,現(xiàn)在有 2 個(gè) group 成功 ACK(2 > 3/2) ,所以最終 ACK 通過

感覺看起來和默認(rèn)的過半機(jī)制差不多,No,No,No。我這里看起來差不多的原因是因?yàn)槲野褭?quán)重都設(shè)置成了 1,如果設(shè)置成別的數(shù)字呢?

剛剛的場(chǎng)景中只有 group1 的 ACK 最終失敗了,原因是因?yàn)橹挥?server1 一個(gè)節(jié)點(diǎn)成功回復(fù),但是如果我把 group1 的權(quán)重改成(另外兩個(gè) group 省略了)

group.1=1:2:3weight.1=3 weight.2=1 weight.3=1

現(xiàn)在 group1 的權(quán)重總和變成了 3 + 1 + 1 = 5,server1 的權(quán)重是 3 了,就算只有它一個(gè)節(jié)點(diǎn)回復(fù)了,也超過了 group1 的一半以上(3 > 5/2),如果是此時(shí)的權(quán)重配置的話,group1 也是算作成功 ACK 的。

還有必須要說明的一點(diǎn),在 ZK 讀取這些配置的時(shí)候就會(huì)計(jì)算每一個(gè) group 的權(quán)重總和,如果計(jì)算出來某一個(gè) group 的權(quán)重總和是 0,則該 group 被移除出計(jì)票規(guī)則中了。

和默認(rèn)的過半機(jī)制不同的是,使用權(quán)重配置的話,是可以讓 Observer 參與的。

3.2 推薦配置

說了半天,怎么啟用這個(gè)權(quán)重的計(jì)票規(guī)則呢?

  • (推薦)在 zoo.cfg 中配置 dynamicConfigFile 選項(xiàng)用來指定動(dòng)態(tài)配置的路徑地址,將所有的 server 、group 和 weight 開頭的配置都移至該路徑的配置文件中。

  • 將所有的 server 、group 和 weight 開頭的配置都直接配置在 zoo.cfg 文件中

只要在配置文件中被 ZK 發(fā)現(xiàn)有 group 或者 weight 開頭的配置,就表示啟用權(quán)重的計(jì)票規(guī)則,否則使用默認(rèn)的過半機(jī)制。

我們之前的 server 前綴配置是這樣:

server.1=zoo1:2888:3888:participant

實(shí)際的 server 配置的格式應(yīng)該是這樣的,可以將客戶端的端口配置在 server 配置中的(最后的分號(hào)后面)

server.1=zoo1:2888:3888:participant;2181

如果這樣配置的話,zoo.cfg 中就不需要配置 clientPort 選項(xiàng)了。

所以按照推薦的配置方式的話,zoo.cfg 就配置這些(路徑請(qǐng)根據(jù)讀者的電腦自行調(diào)整)

tickTime=2000 initLimit=10 syncLimit=5 dataDir=/Users/junjiexun/develop/zk/zk01/data dynamicConfigFile=/Users/junjiexun/develop/zk/zk01/conf/zoo.dyn.cfg ...

而我在 /Users/junjiexun/develop/zk/zk01/conf/zoo.dyn.cfg 的文件中就可以配置

server.10000000000=127.0.0.1:2888:3888:participant;2181 server.2=127.0.0.1:2887:3887;2182 server.3=127.0.0.1:2886:3886;2183group.1=10000000000:2:3weight.10000000000=1 weight.2=1 weight.3=1

更詳細(xì)的可以查看官方文檔

3.3 動(dòng)態(tài)修改

那么問題來了,我這樣配置好了后,怎么才能動(dòng)態(tài)的往集群中添加節(jié)點(diǎn)或者刪除節(jié)點(diǎn)呢?

Java 的客戶端提供了一個(gè) getConfig 的方法

ZooKeeper?client?=?new?ZooKeeper("127.0.0.1:2181",?3000,?null); byte[]?config?=?client.getConfig(false,?null); System.out.println(new?String(config)); client.close();

打印出來的結(jié)果是

server.2=127.0.0.1:2887:3887:participant;0.0.0.0:2182 server.3=127.0.0.1:2886:3886:participant;0.0.0.0:2183 server.10000000000=127.0.0.1:2888:3888:participant;0.0.0.0:2181 group.1=2:3:10000000000 weight.2=1 weight.3=1 weight.10000000000=1 version=0

這些信息看起來和我們配置的 zoo.dyn.cfg 有點(diǎn)像但是又有點(diǎn)不一樣,不一樣的地方實(shí)際就是 ZK 幫我們自動(dòng)補(bǔ)齊的格式,而這個(gè)返回的數(shù)據(jù) ZK 是存在哪里的呢?ZK 在啟動(dòng)的時(shí)候默認(rèn)會(huì)在根路徑創(chuàng)建以下節(jié)點(diǎn)

/ |--zookeeper|--config|--quota

而 getConfig 返回的數(shù)據(jù)實(shí)際就是 /zookeeper/config 節(jié)點(diǎn)的數(shù)據(jù),而且這個(gè)節(jié)點(diǎn)的權(quán)限只有 Read,不信你用 getData 試試,返回的數(shù)據(jù)是一樣的

ZooKeeper?client?=?new?ZooKeeper("127.0.0.1:2181",?3000,?null); byte[]?config?=?client.getData("/zookeeper/config",?false,?null); System.out.println(new?String(config)); client.close();

現(xiàn)在可以獲取到這個(gè)配置了,那怎么去修改呢?ZK 官方提供了兩種方式:命令行、Java API。

如果使用 Java 內(nèi)置的命令行工具,在支持的命令中就有一個(gè) reconfig 命令,參數(shù)是:

reconfig?[-s]?[-v?version]?[[-file?path]?|?[-members?serverID=host:port1:port2;port3[,...]*]]?|?[-add?serverId=host:port1:port2;port3[,...]]*?[-remove?serverId[,...]*]

另一種就是使用 Java 的客戶端代碼,我們之前一直使用的是 ZooKeeper 這個(gè)類,他還有一個(gè)子類叫 ZooKeeperAdmin,這個(gè)子類就擁有 reconfigure 方法可以對(duì)配置進(jìn)行修改,下面我來演示下,但在此之前我必須說明下動(dòng)態(tài)修改配置的特性

  • 動(dòng)態(tài)修改配置分為:增量和非增量的方式

  • 因?yàn)閷?shí)際上修改的就是 /zookeeper/config 節(jié)點(diǎn)的數(shù)據(jù),而這個(gè)節(jié)點(diǎn)默認(rèn)只有 Read 權(quán)限,所以要么直接使用管理員權(quán)限進(jìn)行修改操作,要么就在環(huán)境變量中配置 zookeeper.skipACL=yes 跳過 ACL 的校驗(yàn)

  • 使用增量方式修改配置的時(shí)候,集群的計(jì)票規(guī)則必須是過半機(jī)制!

  • 使用非增量的方式修改配置時(shí),兩種機(jī)制均可。

  • 將 Follower 從集群配置中刪除,只是相當(dāng)于把它降級(jí)為 Observer,它是仍然可以對(duì)外提供服務(wù)端,并且也同樣可以接受到 Leader 的消息

  • 將 Leader 從集群配置中刪除時(shí),會(huì)造成較大的性能影響,整個(gè)集群在選出新的 Leader 之前是無法對(duì)外提供服務(wù)的,請(qǐng)盡量不要這么做

  • 而增加節(jié)點(diǎn)就輕松很多,新加入的節(jié)點(diǎn)會(huì)自動(dòng)和 Leader 進(jìn)行同步數(shù)據(jù)

3.3.1 增量刪除節(jié)點(diǎn)

假設(shè)我現(xiàn)在一共有 3 個(gè)節(jié)點(diǎn),采用的是過半機(jī)制(必須得是),三個(gè) ID 分別是 10000000000、2、3,我們嘗試將 ID 為 3 的節(jié)點(diǎn)刪除,我這里采用直接配置 skipACL 跳過權(quán)限校驗(yàn)(下同)

ZooKeeperAdmin?client?=?new?ZooKeeperAdmin("127.0.0.1:2181",?3000,?null); List<String>?leavingServers?=?new?ArrayList<>(); leavingServers.add("3"); byte[]?reconfigure?=?client.reconfigure(null,?leavingServers,?null,?-1,?null); System.out.println(new?String(reconfigure)); client.close();

該接口返回的數(shù)據(jù)就是 /zookeeper/config 修改完成后的配置信息,可以看到新的配置中和 3 有關(guān)的數(shù)據(jù)就消失了

server.2=127.0.0.1:2887:3887:participant;0.0.0.0:2182 server.10000000000=127.0.0.1:2888:3888:participant;0.0.0.0:2181 version=400000004

這個(gè) version=400000004 是干嘛的呢?ZK 為修改的配置默認(rèn)也提供了版本的控制,啟動(dòng)成功后會(huì)在你配置的 dynamicConfigFile 路徑下自動(dòng)生成一個(gè)文件,我這里是 zoo.cfg.dynamic.300000000 讀者可能跟我的不一樣。這個(gè) 300000000 就是版本號(hào),而當(dāng)我把 ID 為 3 的節(jié)點(diǎn)刪除后,ZK 又自動(dòng)生成了個(gè)文件 zoo.cfg.dynamic.400000004 這個(gè) 400000004 就是新的版本號(hào),如果我們?cè)谛薷牡臅r(shí)候?qū)Ξ?dāng)前集群配置的版本號(hào)有要求的話就可以在 reconfigure 方法中的第四個(gè)參數(shù)填入需要的目標(biāo)版本號(hào)即可,我例子中是 -1 代表無視版本號(hào),和 delete、setData 的 version 字段是一個(gè)用意。

3.3.2 增量增加節(jié)點(diǎn)

讓我們?cè)侔压?jié)點(diǎn) 3 加回去

ZooKeeperAdmin?client?=?new?ZooKeeperAdmin("127.0.0.1:2181",?3000,?null); List<String>?joiningServers?=?new?ArrayList<>(); joiningServers.add("server.3=127.0.0.1:2886:3886;2183"); byte[]?reconfigure?=?client.reconfigure(joiningServers,?null,?null,?-1,?null); System.out.println(new?String(reconfigure)); client.close();

得到的新配置內(nèi)容是

server.10000000000=127.0.0.1:2888:3888:participant;0.0.0.0:2181 server.2=127.0.0.1:2887:3887:participant;0.0.0.0:2182 server.3=127.0.0.1:2886:3886:participant;0.0.0.0:2183 version=400000013

節(jié)點(diǎn) 3 加回去了,而且版本號(hào)又改變了,又多了一個(gè) zoo.cfg.dynamic.400000013 文件

3.3.3 非增量

ZooKeeperAdmin?client?=?new?ZooKeeperAdmin("127.0.0.1:2181",?3000,?null); List<String>?newMembers?=?new?ArrayList<>(); newMembers.add("server.10000000000=127.0.0.1:2888:3888:participant;2181"); newMembers.add("server.3=127.0.0.1:2886:3886;2183"); byte[]?reconfigure?=?client.reconfigure(null,?null,?newMembers,?-1,?null); System.out.println(new?String(reconfigure)); client.close();

這樣的話相當(dāng)于把 ID 為 2 的節(jié)點(diǎn)給刪除了(當(dāng)然也可以新增節(jié)點(diǎn),我這里就不演示了)

3.4 小節(jié)

三種不同的方式實(shí)際對(duì)應(yīng)的就是 Java API 的三個(gè)參數(shù) joiningServers、leavingServers、newMembers,而且 Java API 參數(shù)除了使用 List 還可以使用 String(逗號(hào)分隔)也可以達(dá)到同樣的效果。動(dòng)態(tài)增刪服務(wù)節(jié)點(diǎn)讓我們可以在避免停機(jī)的前提下調(diào)整整個(gè) ZK 集群的服務(wù)能力(個(gè)人覺得動(dòng)態(tài)增加比較有用)。

而分組權(quán)重的計(jì)票規(guī)則提供了一種新的歸票策略,特別是配合動(dòng)態(tài)配置,可以運(yùn)行時(shí)修改權(quán)重,但總體來說,分組權(quán)重的計(jì)票規(guī)則比較雞肋,我也不知道能在什么樣的場(chǎng)景下使用(高性能的機(jī)器可以權(quán)重大一點(diǎn)?問題是現(xiàn)在都是云服務(wù),容器化和虛擬化的,機(jī)器的配置都可以動(dòng)態(tài)調(diào)整的,而且一般機(jī)器配置也都是一樣的,實(shí)在是想不到還有什么用)

如果讀者有關(guān)于分組權(quán)重的使用思路可以分享給大家噢~關(guān)于更多的動(dòng)態(tài)配置可以參考 官方文檔

四、ZK 監(jiān)控

ZK 3.6 之后新增的 Metrics 是 ZK 提供給用戶可查詢的監(jiān)控指標(biāo),官網(wǎng)上也說了可以結(jié)合 Prometheus 或者 Grafana 來使用。什么?你完全沒用過,甚至沒聽說過!那巧了這兩個(gè)東西我也沒玩過,借著這個(gè)機(jī)會(huì)就和大家一起學(xué)習(xí)下,搞個(gè) Hello World,不過因?yàn)楸鞠盗惺且?ZK 為主的,所以一切從簡(jiǎn)配置,Let's GO!

4.1 Prometheus

Mac 安裝特別簡(jiǎn)單,其他平臺(tái)可以去官網(wǎng)下載壓縮包

$?brew?install?prometheus

我這里的默認(rèn)安裝路徑是 /usr/local/Cellar/prometheus/2.23.0

在此之前還需要在 ZK 節(jié)點(diǎn)的配置 zoo.cfg 加兩行

metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider metricsProvider.httpPort=7000

我是本地起的三個(gè)節(jié)點(diǎn),另外兩個(gè)節(jié)點(diǎn)需要改成 7001 和 7002,因?yàn)槎丝诓荒苤貜?fù)

之后修改 Prometheus 的默認(rèn)配置,在我的電腦上路徑為 /usr/local/etc/prometheus.yml 修改為

global:scrape_interval:?15s scrape_configs:-?job_name:?"test-zk"static_configs:-?targets:?["localhost:7000",?"localhost:7001",?"localhost:7002"]

job_name 可以隨便起,重點(diǎn)是 targets 目標(biāo)地址和 scrape_interval 訪問間隔,修改完畢后,就可以啟動(dòng) Prometheus

$?cd?/usr/local/Cellar/prometheus/2.23.0 $?./bin/prometheus?--config.file=/usr/local/etc/prometheus.yml

然后訪問 localhost:9090 就能看到如下界面了:

只要勾上了 Enable autocomplete 就可以在輸入框里輸入了,馬上就能得到提示,我這里隨便輸幾個(gè)參數(shù)看看

簡(jiǎn)單的就演示到這里了,剩下的交給讀者了~

4.2 Grafana

Mac 安裝 Grafana 也非常簡(jiǎn)單

$?brew?install?grafana

安裝完畢后,可以通過命令啟動(dòng)

$?grafana-server?--config=/usr/local/etc/grafana/grafana.ini?--homepath?/usr/local/share/grafana?--packaging=brew?cfg:default.paths.logs=/usr/local/var/log/grafana?cfg:default.paths.data=/usr/local/var/lib/grafana?cfg:default.paths.plugins=/usr/local/var/lib/grafana/plugins

Grafana 默認(rèn)的端口是 3000,訪問 localhost:3000 默認(rèn)的用戶名密碼均是 admin,就能看到首頁(yè)了

Grafana 天然支持了 Prometheus 的數(shù)據(jù)源,可以直接添加

默認(rèn)的配置只需要修改 URL(默認(rèn)是 localhost:9090)

然后需要添加一個(gè) dashboard 的模板,ZK 官方給我們提供了一個(gè)模板,貼心吧

10465 這個(gè)數(shù)字哪兒來的呢?官方文檔的模板

大功告成!比 Prometheus 好看多了~

關(guān)于 ZK 的監(jiān)控就介紹到這里了。傳統(tǒng)功夫,點(diǎn)到為止~

五、ZK 可視化開源項(xiàng)目介紹

使用命令行操作 ZK 太麻煩了,所以可視化就很有必要了,下面推薦幾個(gè)不錯(cuò)的可視化客戶端,有的是本地客戶端,有的是 Web 服務(wù),大家按需獲取吧~

  • PrettyZoo:https://github.com/vran-dev/PrettyZoo,可視化 GUI 客戶端,各個(gè)平臺(tái)都有安裝文件,需要連接 ZK 服務(wù)端的時(shí)候,手邊有這樣一個(gè)工具還是很方便的

  • zkdash:https://github.com/ireaderlab/zkdash,JavaScript + Python 可視化 Web 客戶端,是個(gè)可以直接運(yùn)行的 Web 服務(wù),缺點(diǎn)是 Python2.7 開發(fā)的,如果不需要二次開發(fā)的話就沒什么問題

  • zoonavigator-web:https://github.com/elkozmon/zoonavigator-web,TypeScript 編寫的可視化 Web 客戶端,是個(gè)可以直接運(yùn)行的 Web 服務(wù)

  • visual-zookeeper:https://github.com/ghostg00/visual-zookeeper,Electron + React 編寫的客戶端

六、最后

老規(guī)矩,如果你有任何對(duì)文章中的疑問也可以是建議或者是對(duì) ZK 原理部分的疑問,歡迎來倉(cāng)庫(kù)中提問,或者閱讀原文來語雀話題討論。

????「點(diǎn)擊關(guān)注」更多驚喜等待你!

總結(jié)

以上是生活随笔為你收集整理的你可能不知道的 ZooKeeper 知识点的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

在线免费观看黄色 | 国产亚洲精品久久久久久电影 | 片网站 | 国产视频1区2区3区 久久夜视频 | 国产成人精品三级 | 99久久精品无码一区二区毛片 | 黄色精品一区二区 | 国产亚洲婷婷 | av网站手机在线观看 | 99精品免费久久久久久久久 | 丁香婷婷社区 | 国产精品av一区二区 | 久99久精品视频免费观看 | 在线一二三区 | 久草观看视频 | 中文字幕成人在线观看 | 国产精品精品国产 | 免费看亚洲毛片 | 四虎成人免费观看 | 日韩高清一区在线 | 久久色亚洲 | 狠狠色狠狠综合久久 | 黄色三级在线 | 国产成人精品午夜在线播放 | 日本久久久精品视频 | 在线免费观看黄网站 | 久久成人精品电影 | 亚洲精品一区二区18漫画 | 国产亚洲欧美日韩高清 | 91污污视频在线观看 | 久久久久久久久艹 | www.69xx| www.亚洲精品 | 毛片www| 成人免费网站视频 | 欧美日韩视频观看 | 美女福利视频网 | 在线免费观看国产黄色 | 天天操天天能 | 日韩精品一卡 | 成年人视频免费在线 | 国产精品剧情在线亚洲 | 99免费在线观看视频 | 日韩免费 | 婷婷夜夜 | 成人天堂网 | 国产精品久一 | 2021国产精品 | 久久久久久久久久久精 | 日韩欧美一区二区三区视频 | 精品成人a区在线观看 | 精品美女久久 | 欧美乱淫视频 | 911久久香蕉国产线看观看 | 国产精品青青 | 激情五月看片 | 欧美一级日韩三级 | 久久久久免费精品国产 | 中文字幕在线观看你懂的 | www看片网站 | 国产系列精品av | 91av中文| 51久久夜色精品国产麻豆 | 黄色一级大片免费看 | 一二三久久久 | 日韩av在线网站 | 91精品国产高清自在线观看 | 国产一二区视频 | 久久午夜电影网 | 在线91观看| 福利网址在线观看 | 久久热首页 | 91精选在线观看 | 超碰人人在线观看 | 91chinese在线| 婷婷色婷婷 | 日韩精品久久久久久久电影竹菊 | 天天综合精品 | 一区二区三区免费 | 国产精品免费久久久久久久久久中文 | 成年美女黄网站色大片免费看 | 日韩成人在线免费观看 | 精品久久影院 | 久操视频在线播放 | 99久久婷婷国产综合精品 | 成人av电影在线观看 | 午夜精品久久久久久久99水蜜桃 | 亚洲精品五月天 | 天天操天天干天天操天天干 | 在线观看成人一级片 | 国产精品久久久久久久av电影 | 在线成人免费电影 | 国产成本人视频在线观看 | www,黄视频 | 国产在线中文字幕 | 色之综合网 | 久久只精品99品免费久23小说 | .国产精品成人自产拍在线观看6 | 欧美一级片在线免费观看 | 国产精品久久久久久久午夜片 | 色婷婷导航 | 黄色小网站在线观看 | 色综合天天射 | 97天堂 | 玖玖玖在线 | 97品白浆高清久久久久久 | 91试看 | 91在线播放综合 | 在线免费av电影 | www.成人精品 | 国产精品一级在线 | 91丨九色丨91啦蝌蚪老版 | 成人三级网址 | 一区二区三区精品在线视频 | av在线日韩 | 国产成人在线播放 | 午夜精品久久久久久中宇69 | 日韩女同av| 丁香六月中文字幕 | 久久香蕉一区 | 少妇自拍av | 国产亚洲精品久久久久久电影 | 中文字幕欧美三区 | 91视频免费看 | 免费看三片 | 热re99久久精品国产99热 | 国产精品原创视频 | 国产免费作爱视频 | av中文字幕免费在线观看 | 亚洲人成在线观看 | 日韩精品观看 | 超级碰碰碰碰 | 久久久99精品免费观看乱色 | 天天激情综合 | 激情电影在线观看 | 一区二区三区国 | 男女全黄一级一级高潮免费看 | 黄a在线| 国产日韩精品一区二区三区在线 | 亚洲一区在线看 | 久久免费电影网 | av免费成人 | 亚洲视频axxx | 日韩精品不卡 | 国模视频一区二区三区 | 亚洲精欧美一区二区精品 | 精品亚洲视频在线 | 亚洲涩涩涩涩涩涩 | 久久综合久久久久88 | 国产精品字幕 | av在线网站大全 | 欧美日韩在线视频观看 | 国产精品99久久久 | 国产精品岛国久久久久久久久红粉 | 97超碰人人澡人人爱 | 久香蕉| 国产一区在线播放 | 九九在线国产视频 | 麻豆国产精品va在线观看不卡 | 99免费看片 | 久久看毛片| 亚洲成人蜜桃 | 美女精品在线观看 | 国产亚洲欧美精品久久久久久 | 久草精品网 | 在线观看中文字幕av | www日| 国产精品美乳一区二区免费 | 91久久国产综合精品女同国语 | 黄色亚洲在线 | 成人在线免费小视频 | 国产日韩精品欧美 | 色综合色综合久久综合频道88 | av高清免费 | 午夜免费福利片 | 麻豆91视频 | 日本在线观看一区 | 婷婷九九| 精品av在线播放 | 91在线你懂的 | 日韩亚洲国产精品 | 免费中文字幕 | 久久久免费视频播放 | 国产精品18p | 成年人免费看的视频 | 午夜av电影院| 亚洲成人资源 | 日本女人在线观看 | 欧美视频18 | 人人插人人舔 | 又长又大又黑又粗欧美 | 欧洲精品久久久久毛片完整版 | 日韩视频中文字幕在线观看 | 蜜桃视频精品 | 亚洲国产中文在线观看 | 久久激情视频 | 久久久久国产精品厨房 | 久久成人午夜 | 国产黄色片在线免费观看 | 手机在线视频福利 | av中文字幕不卡 | 精品视频99| 99在线免费视频观看 | 日韩精品免费在线观看 | 国产精品免费观看网站 | 人人揉人人揉人人揉人人揉97 | 久久精品国产一区二区 | 国产视频一区在线免费观看 | 香蕉网在线观看 | 亚洲人成影院在线 | 一区二区三区 中文字幕 | 六月丁香激情综合色啪小说 | 黄色精品一区二区 | 在线91网 | 久久综合网色—综合色88 | 久99久视频 | 99亚洲精品在线 | 不卡电影一区二区三区 | 久久免费激情视频 | 欧美日韩国产在线一区 | 久久精品福利 | 丁香六月激情婷婷 | 国产精品久久一区二区三区, | 在线综合 亚洲 欧美在线视频 | 99精品一级欧美片免费播放 | 日本精品久久久久中文字幕 | 开心激情综合网 | 中文字幕在线乱 | 免费在线视频一区二区 | 在线精品观看 | 免费进去里的视频 | 久久精品成人热国产成 | 韩日视频在线 | 国产一级黄 | 精品国内自产拍在线观看视频 | 国产精品v欧美精品v日韩 | 精品一区二区视频 | a级一a一级在线观看 | 欧美激情精品久久久久久免费 | 97超碰在线久草超碰在线观看 | av丝袜天堂 | 国产真实精品久久二三区 | 日日夜夜噜噜噜 | 人人草在线视频 | av日韩精品| 亚洲丝袜一区二区 | 婷婷av网站 | 特级西西444www大精品视频免费看 | 美女av免费| 国产成在线观看免费视频 | 国产不卡在线观看视频 | 国产精品视频全国免费观看 | 天天操网址 | 91资源在线视频 | 91麻豆精品国产91久久久使用方法 | 久久久久久久久久久黄色 | 色99之美女主播在线视频 | 91av国产视频 | 日韩欧美在线观看一区二区三区 | av短片在线观看 | 亚洲成a人片在线www | 亚洲精品99久久久久久 | 欧美成人xxx | 人人爽人人澡人人添人人人人 | 久久久精品免费看 | 久久中文字幕在线视频 | 五月天com| 2019国产精品 | 天天干天天射天天操 | 久久国内精品99久久6app | 亚洲2019精品| 国产91学生粉嫩喷水 | 激情五月视频 | 福利视频一区二区 | 69国产精品视频免费观看 | 国产视频在 | 天天做日日爱夜夜爽 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 在线观看免费一区 | 在线视频手机国产 | 色99在线| 精品女同一区二区三区在线观看 | 中文字幕av免费观看 | 欧美色操 | 久久免费的视频 | 成人h电影| 激情丁香月| 久久狠狠干 | 玖玖在线观看视频 | 国产精品久久99综合免费观看尤物 | 日韩欧美视频免费在线观看 | 日本大尺码专区mv | 天天爱天天草 | 欧美污污视频 | 99久久精品日本一区二区免费 | 国产中文字幕一区二区 | 亚洲国产人午在线一二区 | 丁香六月天 | 久久99精品国产麻豆婷婷 | 国产日本亚洲高清 | 久久久久国产精品免费 | 在线观看黄色国产 | 日韩毛片在线一区二区毛片 | 九九九热精品 | 欧美另类一二三四区 | www国产亚洲 | 四虎在线永久免费观看 | 国产精品午夜久久 | 国产一区在线免费观看 | v片在线看 | 亚洲天堂网视频在线观看 | 成人午夜电影久久影院 | 天天摸天天舔天天操 | 水蜜桃亚洲一二三四在线 | 亚洲综合成人专区片 | 伊甸园av在线 | 热久久国产精品 | 久久久久久久久久久久久久免费看 | 国产精品久久久久av免费 | 久久在线免费观看 | 午夜电影久久久 | 夜夜操狠狠干 | 日韩在线中文字幕 | 欧美精品乱码久久久久久 | 天天插天天爱 | 久久久99精品免费观看 | 日韩av不卡播放 | 国产只有精品 | 探花国产在线 | 很污的网站 | 伊人一级 | 日本久久久久久科技有限公司 | 国产亚洲精品电影 | 国产在线美女 | 综合天堂av久久久久久久 | 久久艹免费 | 国产黑丝一区二区 | 在线精品视频免费播放 | 日本最新高清不卡中文字幕 | 国产资源网站 | 欧美成人猛片 | 狠狠干狠狠色 | 成人免费视频视频在线观看 免费 | 久久人人爽av | 久久99婷婷| 婷婷网址 | 一级欧美日韩 | 欧美日韩不卡在线视频 | 91热精品 | 91精品国产自产老师啪 | 337p日本大胆噜噜噜噜 | 久久精品欧美日韩精品 | av资源在线看 | 在线91色 | 狠狠狠色狠狠色综合 | 日韩欧美在线免费观看 | 黄色av播放| 五月天婷婷在线播放 | 久久久久久影视 | 另类老妇性bbwbbw高清 | 久久精品一区二区三区视频 | 久久视频这里有久久精品视频11 | 欧美性生爱 | 黄色网大全 | 欧美日韩高清一区二区 | 日本aaa在线观看 | 免费日韩一级片 | 国产女人18毛片水真多18精品 | 91免费日韩 | 国产福利中文字幕 | 91一区二区三区在线观看 | 国产精品美女999 | 天天色天天操综合 | 日韩视频一区二区在线观看 | 一区二区三区在线观看 | 亚洲精品视频在线观看免费 | 国产特级毛片aaaaaa高清 | 中文字幕精品一区 | 不卡电影免费在线播放一区 | 天天色宗合| 色资源二区在线视频 | 精品久久久久久久久久 | 欧美一区二区三区免费看 | 国产一级视频免费看 | 奇米7777狠狠狠琪琪视频 | 波多野结衣在线观看一区 | 久久黄色网址 | 日韩一区二区在线免费观看 | 青青草国产精品 | 国产69精品久久久久99 | 欧美日韩另类在线 | 国产高清专区 | 久草精品免费 | 午夜狠狠干 | 日韩免费在线观看网站 | 中文字幕精| 国产在线理论片 | 久草在线手机观看 | 久久久久99精品成人片三人毛片 | 久要激情网 | 亚洲一区二区精品 | 久久久综合精品 | 五月天六月色 | 久久国产精品免费一区 | 日韩在线免费视频 | 国产免费黄色 | 少妇性bbb搡bbb爽爽爽欧美 | 日日夜夜精品免费观看 | 7777xxxx| 久久久久久久久久久免费 | 91网在线观看 | 免费在线观看污网站 | 日本最新一区二区三区 | 最近免费中文字幕 | 亚洲一区精品人人爽人人躁 | 国产 亚洲 欧美 在线 | 欧美一级看片 | www.伊人色.com| 国产成a人亚洲精v品在线观看 | 日韩精品免费一区 | 日本韩国中文字幕 | 国产福利一区二区在线 | 狠狠躁夜夜躁人人爽超碰91 | 亚洲手机av| 久久黄色影院 | 91精品人成在线观看 | 色www.| 激情综合啪 | 国产专区在线播放 | 精品一区二区在线播放 | 国产精品久久久久久久久久久杏吧 | 欧美色图东方 | 国产第页 | 日韩高清dvd | 亚洲精品高清视频在线观看 | 国产精品久久久久久久久久新婚 | 99久久毛片 | 成人a在线| 国产精品 视频 | 国产99一区| 亚州国产精品久久久 | 9797在线看片亚洲精品 | 国产色拍拍拍拍在线精品 | 一区二区三区视频网站 | 国产精品久久久免费看 | 精品一区二区在线免费观看 | 99精品久久久久久久久久综合 | 国产精品入口麻豆 | 99久久99久国产黄毛片 | 日韩在线电影 | 亚洲一区二区三区在线看 | 在线观看视频你懂的 | 国产成人av一区二区三区在线观看 | 久久久国产视频 | 中文字幕av免费观看 | 91精品欧美 | 婷婷中文在线 | 亚洲欧美成人网 | 免费观看久久 | 日韩 国产 | 亚洲精品色 | 欧美伦理一区二区 | 欧美 日韩 视频 | 国产福利精品视频 | 色婷婷婷 | 国产婷婷vvvv激情久 | 在线视频成人 | 亚洲男男gaygayxxxgv | 日韩精品视频免费在线观看 | 亚洲经典视频在线观看 | 91精品国产综合久久福利不卡 | 999久久久欧美日韩黑人 | 成人app在线播放 | 在线观看av不卡 | 国产在线精品播放 | 成人久久18免费网站图片 | 精品国产一区二区三区久久久久久 | 激情综合五月天 | 免费黄色小网站 | 黄色成品视频 | 伊人五月 | 99成人精品 | 免费看成人 | 久久久网站 | 黄色毛片一级 | 天天操比 | 欧美日韩有码 | 婷婷在线观看视频 | 91av视频在线播放 | 正在播放五月婷婷狠狠干 | 久久久久久久久久久精 | 日本色小说视频 | 久久视频免费观看 | 狠狠躁日日躁狂躁夜夜躁 | 日韩二级毛片 | 日韩在线网址 | 婷婷在线免费观看 | 国产精品一级在线 | 国产一区视频在线观看免费 | 亚洲精品乱码久久久久 | 久久精品伊人 | 69绿帽绿奴3pvideos | 亚洲第一区在线观看 | 婷婷丁香五 | 久久国产精品影视 | 国产h在线播放 | 欧美日韩精品综合 | 偷拍福利视频一区二区三区 | 亚洲国产日韩一区 | 亚洲精品黄色 | 国产艹b视频 | 蜜桃视频在线观看一区 | 欧美在线aaa| 中文字幕一区二区三区在线视频 | 国产久草在线观看 | 日韩二区三区在线 | 天天做天天看 | 日日夜色 | 国产91精品高清一区二区三区 | 在线免费黄色 | 91麻豆精品国产91久久久久 | 国产亚洲视频在线 | 国产精品福利小视频 | 日本婷婷色 | 久草在线观看资源 | 色欧美视频 | 日韩一级网站 | 亚洲精品日韩av | 91精品国产一区 | 黄色片免费在线 | 成人h视频| 性色av免费在线观看 | 久久久久 | 成年人黄色免费看 | 天天插天天操天天干 | 国产福利在线不卡 | 精品亚洲视频在线观看 | 国产精品成人自产拍在线观看 | 91精品视频免费看 | 在线观看中文av | 日韩动漫免费观看高清完整版在线观看 | 日韩精品久久久久久中文字幕8 | 中文国产在线观看 | 国产成人黄色片 | 中文字幕免费 | 人人要人人澡人人爽人人dvd | 国产午夜麻豆影院在线观看 | 国产精品6 | 99爱国产精品 | 色婷婷综合在线 | 欧美日韩在线网站 | 国产精品久免费的黄网站 | 久久综合干 | 日日爽天天爽 | 欧美激情精品 | av超碰免费在线 | 亚州精品一二三区 | 久久激情视频 久久 | 日韩一区二区三免费高清在线观看 | 天天草天天 | 国产在线精品观看 | 狠狠狠狠狠操 | 亚洲成人av电影在线 | 免费观看91视频大全 | 五月丁香 | 久久在线视频在线 | 国产精品久久一区二区三区不卡 | 亚洲精品网站 | 久久综合射 | 日日日操操 | 香蕉视频在线免费 | 久久久免费观看视频 | 国产999精品视频 | 精品国产精品久久 | 亚洲第一伊人 | 中文字幕免费高 | 日日干视频 | 精品久久亚洲 | 国产片网站 | 在线看免费 | 国产成人99久久亚洲综合精品 | 久久久久免费视频 | 国产视频在线观看一区二区 | 91精品国产成人观看 | av亚洲产国偷v产偷v自拍小说 | 日日夜夜av | 视频精品一区二区三区 | 最新超碰| 亚洲最大成人免费网站 | 日韩免费网址 | 黄色网免费 | 色老板在线 | 91麻豆精品国产自产在线游戏 | 日韩一级精品 | 蜜臀一区二区三区精品免费视频 | 国产小视频免费在线观看 | 久久免费一级片 | 日韩av资源站 | www操操| 欧洲亚洲国产视频 | 日韩r级电影在线观看 | 日本中文字幕系列 | 97视频资源 | 97影视| 高清免费在线视频 | 欧美日韩国产三级 | 九九热在线精品 | 日韩大片免费观看 | 欧美一级在线观看视频 | 中文av在线播放 | 午夜av一区二区三区 | 97成人精品| 欧美亚洲成人xxx | 日韩高清免费在线观看 | 精品在线观看国产 | 在线中文字幕av观看 | 久久免费看毛片 | 手机av永久免费 | 黄色免费网站下载 | 毛片精品免费在线观看 | 欧美精品国产综合久久 | 麻豆国产精品永久免费视频 | 久久综合加勒比 | 福利二区视频 | 日韩高清免费在线 | 久久国语露脸国产精品电影 | 亚洲综合导航 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 国产精品成人一区 | 成人av资源网站 | 久久都是精品 | 国产96在线观看 | 亚洲成av人影片在线观看 | 久久精品99视频 | 国产精品一区二区视频 | 久久久国产一区二区三区 | 中文字幕国内精品 | 欧美性黑人 | 最近字幕在线观看第一季 | 极品嫩模被强到高潮呻吟91 | 国产涩图| 超碰在线最新网址 | 成人免费观看在线视频 | 337p日本欧洲亚洲大胆裸体艺术 | 91在线视频免费播放 | 国产精品99久久久久久有的能看 | 中文字幕日韩伦理 | 国产你懂的在线 | 在线 精品 国产 | 亚洲欧美日韩中文在线 | av成人免费在线 | 国产精品久久久久av免费 | 日本精品久久久久影院 | 日韩久久一区二区 | 在线免费国产视频 | 在线免费看黄网站 | 欧美成人精品在线 | 久久成年视频 | av电影中文字幕在线观看 | 五月婷视频 | 久久狠狠婷婷 | wwwav视频| 亚洲手机av | 国产在线播放一区二区 | 亚洲永久av| 国产精品乱码久久久久久1区2区 | 天天躁天天躁天天躁婷 | 黄色一级影院 | 日韩在线大片 | 久久久九色精品国产一区二区三区 | 欧美精品久久久久久久亚洲调教 | 91成年视频 | 在线黄色av| 国产成人一区二区精品非洲 | 九月婷婷色| 911久久香蕉国产线看观看 | 中国一级片在线 | 最近中文字幕国语免费高清6 | 久久99视频免费观看 | 91av视频在线播放 | 国产91在线免费视频 | 欧美黄色软件 | 99久热在线精品视频 | 中文字幕在线观看不卡 | 五月天久久久久久 | 国产精品午夜8888 | 日韩精品在线观看av | 9992tv成人免费看片 | 丁香六月天婷婷 | 国产精品h在线观看 | 国产做aⅴ在线视频播放 | 欧美一级大片在线观看 | 91成人精品 | 免费福利视频网 | 中文字幕免费高清在线观看 | 91在线精品秘密一区二区 | 黄色1级毛片 | 精品免费视频. | 美女网色 | 亚洲国产一二三 | 日韩欧美电影网 | 99视频一区二区 | 久久国产亚洲视频 | 欧美一级激情 | 久久精品99国产精品亚洲最刺激 | av网站在线观看播放 | 亚洲国产经典视频 | 99久热在线精品视频 | 亚洲国产日韩欧美在线 | 久久久视频在线 | 日韩精品免费一线在线观看 | 天天操天天操天天操 | 九九在线精品视频 | 国产免费观看av | 午夜av激情 | www狠狠操 | 国产成人精品一二三区 | 五月婷婷中文 | www.国产视频| 欧美激情xxxx性bbbb | 国产高清在线观看av | 美女网站久久 | 又粗又长又大又爽又黄少妇毛片 | 亚洲欧洲精品一区二区精品久久久 | 91亚洲网 | 992tv在线观看 | 国产精品第二十页 | 怡红院成人在线 | 日p视频在线观看 | 狠狠狠色丁香综合久久天下网 | 国产午夜一区 | 国产拍在线 | 天天色天天综合 | 最新av电影网站 | 日韩av伦理片 | 97香蕉视频| 久久夜视频 | 精品久久久久久国产 | 99热国产精品 | 久久久久久久影视 | 欧美最爽乱淫视频播放 | 最新精品视频在线 | 久久久久久国产精品免费 | 天天玩天天干天天操 | 久久精品国产一区二区三 | www.香蕉视频在线观看 | 亚洲美女视频在线 | 日日射av | 日韩av一区二区三区四区 | 精品福利在线视频 | 99精品国产福利在线观看免费 | 久久艹久久 | 日日精品 | 免费在线观看毛片网站 | 激情五月六月婷婷 | 国产成人亚洲在线观看 | 伊甸园永久入口www 99热 精品在线 | 亚洲精品美女在线观看 | 九九热免费观看 | 久久久久麻豆v国产 | 精品国产综合区久久久久久 | 综合色综合| 免费看污黄网站 | 日本精品视频在线观看 | 日韩一区二区三区高清免费看看 | 国语对白少妇爽91 | 亚洲精品一区二区三区在线观看 | 免费99视频 | 国产欧美精品在线观看 | 99热精品国产一区二区在线观看 | 996久久国产精品线观看 | 国产精品一区二区av影院萌芽 | 国产亚洲午夜高清国产拍精品 | 国产免费久久久久 | 亚洲性xxxx | 日本韩国精品在线 | 日本公乱妇视频 | 91人网站| 久久久wwww| 9999在线| 国产精品99免视看9 国产精品毛片一区视频 | 日韩成人精品一区二区三区 | 亚洲国产小视频在线观看 | 在线亚洲高清视频 | 天天操天天舔天天干 | 免费看搞黄视频网站 | 在线a视频 | 国产成人久久精品一区二区三区 | 丝袜+亚洲+另类+欧美+变态 | 久久久久久网址 | 九九日韩| 天天操天天舔天天爽 | 99精品国自产在线 | 欧美在线一二 | av在线一二三区 | 鲁一鲁影院| 涩涩网站在线播放 | 性色视频在线 | 在线观看中文字幕dvd播放 | 久章草在线 | 色综合久久88色综合天天 | 香蕉在线视频观看 | 国产精品wwwwww | 亚洲黄a | 在线观看岛国 | 亚洲国产精品激情在线观看 | 在线观看中文字幕视频 | 国产码电影 | 亚洲欧美观看 | 久久精品三| 色播亚洲婷婷 | 国产精品视频永久免费播放 | 九九九视频在线 | 国产一区二区三区午夜 | 99国产精品 | 五月婷网 | 97视频人人免费看 | 日韩v欧美v日本v亚洲v国产v | 欧美成人91| 狠狠干 狠狠操 | 国产黄色免费电影 | 一区二区三区在线免费观看 | 国产麻豆精品免费视频 | 视频一区二区精品 | 国产一区二区三区视频在线 | a在线一区 | 亚洲综合视频在线 | 狠狠色狠狠色综合日日92 | 911香蕉视频 | 久久99国产综合精品免费 | 少妇高潮流白浆在线观看 | 日本h在线播放 | 亚洲国产精品久久久 | 亚洲激情 欧美激情 | 色99导航 | 天天色天天干天天 | 一区二区三区在线观看 | 国产精品久久久久久吹潮天美传媒 | 视频一区二区精品 | 国产理论一区二区三区 | 国产 亚洲 欧美 在线 | 免费观看91 | 超碰99在线 | 五月情婷婷 | 女女av在线| 99久久婷婷国产 | 欧美久久久久久久久中文字幕 | 亚洲精品短视频 | 国产成人精品免费在线观看 | 婷婷免费在线视频 | 美女视频一区 | 日韩中文字幕在线不卡 | 精品一二三四视频 | 人人爽久久涩噜噜噜网站 | 正在播放久久 | 亚洲男模gay裸体gay | 在线 你懂 | 日韩三级视频在线看 | 五月婷婷一区二区三区 | 欧美另类亚洲 | 五月激情视频 | 精品二区视频 | 久久艹久久 | 青青久草在线视频 | 国产美女精彩久久 | 亚洲精品在线观看av | 少妇bbw撒尿 | 国产福利一区二区在线 | 国产精品黑丝在线观看 | 亚洲激情精品 | 国产999在线观看 | 欧美一进一出抽搐大尺度视频 | 日韩精品国产一区 | 亚洲a免费 | 久久久久国产精品厨房 | 99久久精品国产欧美主题曲 | 8x成人免费视频 | 国产麻豆精品在线观看 | 免费av在线| 久热电影 | 人人舔人人干 | 悠悠av资源片 | 亚洲精品综合欧美二区变态 | 亚洲婷婷免费 | 欧美与欧洲交xxxx免费观看 | 人人藻人人澡人人爽 | 五月激情久久久 | 免费看网站在线 | 最新99热| 久久99国产精品二区护士 | 国产精品私人影院 | 久久久国产一区二区三区 | 天堂中文在线视频 | 国产精品12 | 日韩成人黄色av | 精品在线视频一区 | 国产精品久久久久久久久久久久久久 | 开心激情综合网 | 婷婷干五月 | 亚洲成人黄色在线 | 精品久久久久一区二区国产 | 亚洲精品看片 | 欧美一级电影 | 亚洲精品小区久久久久久 | 欧美一区影院 | 成人国产精品一区二区 | 91资源在线观看 | 国产999免费视频 | 日韩av中文在线观看 | 美女精品在线观看 | 午夜视频日本 | 99视频精品 | 9色在线视频 | 天天摸天天操天天爽 | 五月婷婷在线视频 | 最近2019年日本中文免费字幕 | 日韩av不卡播放 | 婷婷中文字幕综合 | 麻豆视频一区二区 | 久久夜色精品国产欧美乱极品 | 亚洲日韩中文字幕在线播放 | 国产免费午夜 | 亚洲视频免费在线看 | 久久国产免 | 久久99精品久久只有精品 | 欧美日韩国产精品一区 | 9999精品视频 | 亚洲精品在线观看不卡 | 九九视频这里只有精品 | 97在线免费视频观看 | 成人一区在线观看 | 欧美精品国产综合久久 | 国产精品video | 999国产| 午夜a区 | 欧美人牲 | 美女网站免费福利视频 | 久久国产精品一区二区三区四区 | 亚洲精品久久久蜜桃直播 | 91精品伦理 | 4438全国亚洲精品观看视频 | 国产精品欧美久久久久三级 | 日韩欧美国产精品 | 久章操| 久草免费手机视频 | 中文乱码视频在线观看 | 久久曰视频 | 98久9在线 | 免费 | 婷婷色吧| 91在线视频免费91 | 精品九九九九 | 久精品视频免费观看2 | 久久久久www| 狠狠狠狠狠狠干 | 成人综合婷婷国产精品久久免费 | 亚洲精品国偷拍自产在线观看蜜桃 | 精品综合久久久 | 黄色成人av在线 | 麻豆免费在线视频 | 99久久日韩精品免费热麻豆美女 | 国产污视频在线观看 | 免费a视频 | 国内精品中文字幕 | 日本三级久久久 | 国产精品久久久久久久久久直播 | 69久久夜色精品国产69 | 日韩电影一区二区三区 | 日韩欧美一区二区三区在线观看 | 国产91国语对白在线 | 98福利在线| 中文资源在线官网 | 韩国视频一区二区三区 | 亚洲三级av | 亚洲精品乱码久久久久久蜜桃欧美 | 日韩成人黄色av | 日本精品一二区 | 国产精品国产三级国产不产一地 | 日韩电影精品 | 色婷婷狠狠干 | 亚洲精品在线观看不卡 | 国产亚洲视频在线观看 | 色婷婷综合在线 | 久久精品综合网 | 午夜精品一区二区三区在线观看 | 六月激情 | 精品国产一区二区三区久久 | 黄色免费高清视频 | 天操夜夜操| 国产精品大片在线观看 | 国产黄a三级三级三级三级三级 | www久久国产 | 人人爽人人爽人人片av | 国产日女人| 国产黄色在线看 | 免费在线视频一区二区 | 久久久影视 | 日本狠狠色 | 另类老妇性bbwbbw高清 |