国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

分布式協(xié)調(diào)服務(wù)之Zookeeper集群部署

共 21669字,需瀏覽 44分鐘

 ·

2020-10-24 05:31

點(diǎn)擊上方藍(lán)色字體,選擇“標(biāo)星公眾號”

優(yōu)質(zhì)文章,第一時(shí)間送達(dá)

? 作者?|??Linux-1874

來源 |? urlify.cn/FNFBRr

66套java從入門到精通實(shí)戰(zhàn)課程分享

一、分布式系統(tǒng)概念

  在聊Zookeeper之前,我們先來聊聊什么是分布式系統(tǒng);所謂分布式系統(tǒng)就是一個(gè)系統(tǒng)的軟件或硬件組件分布在網(wǎng)絡(luò)中的不同計(jì)算機(jī)之上,彼此間通過消息傳遞進(jìn)行通信和協(xié)作的系統(tǒng);簡單講就是一個(gè)系統(tǒng)的組件分布在不同網(wǎng)絡(luò)中的各主機(jī)上,彼此通過消息傳遞通信和協(xié)作,我們把這樣的系統(tǒng)就叫做分布式系統(tǒng);

  二、分布式系統(tǒng)的特征

  1、分布性:所謂分布性就是指我們在上面描述的各組件分布在不同的網(wǎng)絡(luò)中的不同計(jì)算機(jī)上;

  2、對等性:所謂對等性是指不同計(jì)算節(jié)點(diǎn)上的組件沒有主從之分,所有組件的角色身份都是平等的;

  3、并發(fā)性:指集群中的各節(jié)點(diǎn)同時(shí)對一些資源進(jìn)行并發(fā)訪問;各節(jié)點(diǎn)同時(shí)并發(fā)訪問一些資源,如何協(xié)調(diào)這些節(jié)點(diǎn)對同一資源的訪問是一個(gè)分布式系統(tǒng)面臨的一個(gè)問題;  

  4、缺乏全局時(shí)鐘:集群各節(jié)點(diǎn)組件沒有一個(gè)全局時(shí)鐘;

  5、故障必然會發(fā)生:這個(gè)是說一個(gè)分布式系統(tǒng)中的各個(gè)節(jié)點(diǎn)一定會故障發(fā)生;

  三、分布式系統(tǒng)常見的故障

  1、通信異常:集群各節(jié)點(diǎn)都是通過網(wǎng)絡(luò)通信,如果因各網(wǎng)絡(luò)設(shè)備故障或異常,或者網(wǎng)絡(luò)線路故障都可導(dǎo)致通信異常;

  2、網(wǎng)絡(luò)分區(qū):在發(fā)生通信異常后,各節(jié)點(diǎn)間通信延遲變得越來越高,最終會導(dǎo)致一個(gè)分布式系統(tǒng)的所有節(jié)點(diǎn)中,一部分能夠正常通信,一部分不能正常通信,我們把這種現(xiàn)象叫做網(wǎng)絡(luò)發(fā)生了分區(qū);比如,兩臺server組成的集群,當(dāng)其中一臺server不能夠正常的聯(lián)系到另一臺server,這個(gè)時(shí)候我們就說網(wǎng)絡(luò)發(fā)生了分區(qū);對于網(wǎng)絡(luò)分區(qū),如何界定哪臺server的網(wǎng)絡(luò)故障就先得尤為重要;

  3、三態(tài):指在分布式系統(tǒng)中各組件間的每一次請求和應(yīng)答狀態(tài);如果能夠正常響應(yīng)請求我們就說本次請求成功被響應(yīng);反之,我們就說本次請求失敗;除了這兩種狀態(tài)外,還有第三種,在分布式系統(tǒng)中網(wǎng)絡(luò)是不可靠因素,因此各組件間調(diào)用就很有可能存在超時(shí);所謂超時(shí)是指在一定時(shí)間范圍內(nèi)請求一直沒有得到響應(yīng);

  4、節(jié)點(diǎn)故障:指分布式系統(tǒng)中各節(jié)點(diǎn)因各種原因?qū)е鹿?jié)點(diǎn)故障;比如節(jié)點(diǎn)斷電宕機(jī),人為操作不當(dāng)?shù)鹊龋?/span>

  四、CAP理論和BASE理論

  CAP理論指一個(gè)分布式系統(tǒng)中,一致性(Consistency)、可用性(Availability)、分區(qū)容錯(cuò)性(Partition tolerance);這三個(gè)要素最多只能同時(shí)滿足兩個(gè);這樣一來我們的系統(tǒng)要么滿足一致性和可用性,要么滿足一致性和分區(qū)容錯(cuò)性,要么滿足可用性和分區(qū)容錯(cuò)性;我們知道一個(gè)分布式系統(tǒng)各組件間傳遞消息來通信,所以網(wǎng)絡(luò)分區(qū)容錯(cuò)性應(yīng)該必須滿足;這樣一來我們的系統(tǒng)就必須在一致性和可用性之間做權(quán)衡;

  BASE理論:BA表示基本可用,S表示軟狀態(tài),E表示最終一致性;它主要是對CAP理論中的一致性和可用性進(jìn)行權(quán)衡的結(jié)果;意思是說一個(gè)分布式系統(tǒng)應(yīng)該滿足系統(tǒng)基本可用(允許部分節(jié)點(diǎn)不可用),在一定時(shí)間窗口內(nèi)我們允許各節(jié)點(diǎn)之間數(shù)據(jù)不一致,但要保證最終一致;

  五、zookeeper簡介

  zookeeper是一個(gè)開源的分布式協(xié)調(diào)服務(wù),由知名互聯(lián)網(wǎng)公司Yahoo創(chuàng)建,它是Chubby的開源實(shí)現(xiàn);換句話講,zookeeper是一個(gè)典型的分布式數(shù)據(jù)一致性解決方案,分布式應(yīng)用程序可以基于它實(shí)現(xiàn)數(shù)據(jù)的發(fā)布/訂閱、負(fù)載均衡、名稱服務(wù)、分布式協(xié)調(diào)/通知、集群管理、Master選舉、分布式鎖和分布式隊(duì)列;

  zookeeper集群中的相關(guān)概念

  集群角色:Leader、Follower、Observer;一個(gè)zookeeper(簡稱zk)集群,是由一個(gè)leader,多個(gè)Follower和Observer角色組成;其中Leader是由follower和observer選舉產(chǎn)生,提供讀寫服務(wù);Leader參與選舉,能夠被選舉,提供讀服務(wù);Observer參與選舉,不能夠被選舉,提供讀服務(wù);

  zk會話:指客戶端和服務(wù)端建立的tcp長鏈接;

  數(shù)據(jù)節(jié)點(diǎn)(ZNode):即zk數(shù)據(jù)模型中的數(shù)據(jù)單元;zk的數(shù)據(jù)都存儲于內(nèi)存中,數(shù)據(jù)模型為樹狀結(jié)構(gòu)(ZNode Tree);每個(gè)ZNode都會保存自己的數(shù)據(jù)于內(nèi)存中;其中ZNode節(jié)點(diǎn)又分持久節(jié)點(diǎn)和臨時(shí)節(jié)點(diǎn),所謂持久節(jié)點(diǎn)指僅顯式刪除才消失的節(jié)點(diǎn);臨時(shí)節(jié)點(diǎn)指會話中止即自動(dòng)消失的節(jié)點(diǎn);

  版本(version):ZK會為每個(gè)ZNode維護(hù)一個(gè)稱之為Stat的數(shù)據(jù)結(jié)構(gòu),記錄了當(dāng)前ZNode的三個(gè)數(shù)據(jù)版本;當(dāng)前版本(version),當(dāng)前znode的子節(jié)點(diǎn)的版本(cversion),當(dāng)前znode的ACL的版本(aversion);

  ACL:ZK使用ACL機(jī)制進(jìn)行權(quán)限控制;CREATE, READ,WRITE,DELETE,ADMIN;

  事件監(jiān)聽器(Watcher):ZK上,由用戶指定的觸發(fā)機(jī)制,在某些事件產(chǎn)生時(shí),ZK能夠?qū)⑼ㄖo相關(guān)的客戶端;

  ZAB協(xié)議:Zookeeper Atomic Broadcast,ZK原子廣播協(xié)議;Zab協(xié)議是為分布式協(xié)調(diào)服務(wù)Zookeeper專門設(shè)計(jì)的一種 支持崩潰恢復(fù)的原子廣播協(xié)議;?主要作用是在zk集群leader崩潰以后,能夠基于此協(xié)議選舉新leader,并且保證數(shù)據(jù)最終一致性和完整性;zk客戶端連接zk集群中的任何一個(gè)節(jié)點(diǎn),發(fā)起請求,如果客戶端發(fā)送讀請求,則直接由當(dāng)前節(jié)點(diǎn)響應(yīng);如果客戶端發(fā)送的是寫請求,且當(dāng)前節(jié)點(diǎn)不是leader節(jié)點(diǎn),則由當(dāng)前節(jié)點(diǎn)把寫請求,轉(zhuǎn)發(fā)給leader,由leader進(jìn)行寫事務(wù)廣播,只有超過集群節(jié)點(diǎn)半數(shù)的響應(yīng)允許寫,該事務(wù)才會被并提交;只有當(dāng)leader寫成功后,leader會通知各follower來同步數(shù)據(jù);對于zab協(xié)議來講,它存在三種狀態(tài),分別是Looking,F(xiàn)ollowing和Leading;所謂looking狀態(tài)指zk集群正在啟動(dòng)或leader崩潰以后,各節(jié)點(diǎn)進(jìn)行選舉的過程時(shí)的狀態(tài);following狀態(tài)指當(dāng)zk集群中有l(wèi)eader以后,各個(gè)follower的狀態(tài);leading狀態(tài)就是指leader所屬狀態(tài);所以zk集群中的各節(jié)點(diǎn)都會在這三個(gè)狀態(tài)上來回轉(zhuǎn)換,在集群剛啟動(dòng)或leder崩潰以后,各節(jié)點(diǎn)都會切換為looking狀態(tài),在選舉產(chǎn)生leader以后,當(dāng)選leader的節(jié)點(diǎn)會從looking切換為leading狀態(tài),其他follower會從looking切換為following狀態(tài);只要zk集群觸發(fā)一次新的選舉,都會經(jīng)過上述狀態(tài)的轉(zhuǎn)換;

  六、zookeeper集群部署

  環(huán)境說明

主機(jī)名ip地址
node01192.168.0.41
node02192.168.0.42
node03192.168.0.43


  1、集群各節(jié)點(diǎn)安裝jdk

[root@node01?~]#?yum?install?-y?java-1.8.0-openjdk-devel

 提示:各節(jié)點(diǎn)的時(shí)間同步、selinux、iptables和firewalld服務(wù)的配置都要提前做好;

  驗(yàn)證:在各節(jié)點(diǎn)執(zhí)行java -version看看對應(yīng)java的版本是不是我們安裝的版本?

  提示:只要在各節(jié)點(diǎn)上能夠看到對應(yīng)版本的java信息出現(xiàn),并且是我們指定的版本,說明java環(huán)境沒有問題;

  2、下載zookeeper二進(jìn)制包

[root@node01?~]#?cd?/usr/local/
[root@node01?local]#?ll
total?0
drwxr-xr-x.?2?root?root??6?Nov??5??2016?bin
drwxr-xr-x.?2?root?root??6?Nov??5??2016?etc
drwxr-xr-x.?2?root?root??6?Nov??5??2016?games
drwxr-xr-x.?2?root?root??6?Nov??5??2016?include
drwxr-xr-x.?2?root?root??6?Nov??5??2016?lib
drwxr-xr-x.?2?root?root??6?Nov??5??2016?lib64
drwxr-xr-x.?2?root?root??6?Nov??5??2016?libexec
drwxr-xr-x.?2?root?root??6?Nov??5??2016?sbin
drwxr-xr-x.?5?root?root?49?Sep?15?20:33?share
drwxr-xr-x.?2?root?root??6?Oct?19?19:42?src
[root@node01?local]#?wget?https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz
--2020-10-19?19:42:52--??https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz
Resolving?mirrors.tuna.tsinghua.edu.cn?(mirrors.tuna.tsinghua.edu.cn)...?101.6.8.193,?2402:f000:1:408:8100::1
Connecting?to?mirrors.tuna.tsinghua.edu.cn?(mirrors.tuna.tsinghua.edu.cn)|101.6.8.193|:443...?connected.
HTTP?request?sent,?awaiting?response...?200?OK
Length:?12515974?(12M)?[application/x-gzip]
Saving?to:?‘a(chǎn)pache-zookeeper-3.6.2-bin.tar.gz’
?
100%[================================================================================>]?12,515,974??4.02MB/s???in?3.0s??
?
2020-10-19?19:42:55?(4.02?MB/s)?-?‘a(chǎn)pache-zookeeper-3.6.2-bin.tar.gz’?saved?[12515974/12515974]
?
[root@node01?local]#?ll
total?12224
-rw-r--r--??1?root?root?12515974?Sep??9?19:36?apache-zookeeper-3.6.2-bin.tar.gz
drwxr-xr-x.?2?root?root????????6?Nov??5??2016?bin
drwxr-xr-x.?2?root?root????????6?Nov??5??2016?etc
drwxr-xr-x.?2?root?root????????6?Nov??5??2016?games
drwxr-xr-x.?2?root?root????????6?Nov??5??2016?include
drwxr-xr-x.?2?root?root????????6?Nov??5??2016?lib
drwxr-xr-x.?2?root?root????????6?Nov??5??2016?lib64
drwxr-xr-x.?2?root?root????????6?Nov??5??2016?libexec
drwxr-xr-x.?2?root?root????????6?Nov??5??2016?sbin
drwxr-xr-x.?5?root?root???????49?Sep?15?20:33?share
drwxr-xr-x.?2?root?root????????6?Oct?19?19:42?src
[root@node01?local]#?scp?apache-zookeeper-3.6.2-bin.tar.gz?node02:/usr/local/
apache-zookeeper-3.6.2-bin.tar.gz???????????????????????????????????????????????????????100%???12MB??26.8MB/s???00:00???
[root@node01?local]#?scp?apache-zookeeper-3.6.2-bin.tar.gz?node03:/usr/local/
apache-zookeeper-3.6.2-bin.tar.gz???????????????????????????????????????????????????????100%???12MB??32.7MB/s???00:00???
[root@node01?local]#

解壓二進(jìn)制包,并把解壓后的目錄做軟鏈接

  提示:其他兩個(gè)節(jié)點(diǎn)都要做相同的操作;

  3、配置zookeeper

  提示:zookeeper在二進(jìn)制包中給我們提供了一個(gè)示例配置文件其路徑為conf/下名為zoo_sample.cfg,我們需要將其復(fù)制為zoo.cfg,然后基于此文件做修改即可;這里主要修改dataDir,從名字上我們可以知道,這個(gè)參數(shù)是指定zookeeper的數(shù)據(jù)目錄;上面的tickTime用于指定節(jié)點(diǎn)向leader發(fā)送心跳的間隔時(shí)間,單位毫秒,一般不用改;initLimit用于指定初始化階段要經(jīng)過多個(gè)tickTime時(shí)長;超出則為初始化超時(shí)或初始化失?。籹yncLimit用戶指定同步階段需要經(jīng)過多少個(gè)tickTime時(shí)長,超出指定的時(shí)長,則為同步失敗,或同步超時(shí);clientPort用于指定客戶端連接zk集群所用端口,即zk集群客戶監(jiān)聽端口;后面的server.1使用于配置集群第一個(gè)節(jié)點(diǎn)的信息;其語法格式為server.id=[hostname or ipaddr ]:port:port[:observer];其中第一個(gè)port用于指定follower與leader進(jìn)行通信和數(shù)據(jù)同步時(shí)所使用端口;第二個(gè)port是指定leader選舉時(shí)使用的端口;集群中有多少zk主機(jī)就要配置多少個(gè)server,并且每個(gè)server的ID必須唯一,除此之外對應(yīng)在配置文件中配置的serverID必須同對應(yīng)server上的數(shù)據(jù)目錄下的myid文件內(nèi)容中的ID保持一致;

  zk配置參數(shù)說明

  除了以上配置,zk還有其他配置

存儲配置:
??????????????? preAllocSize:為事務(wù)日志預(yù)先分配的磁盤空間量;默認(rèn)65535KB;
??????????????? snapCount:每多少次事務(wù)后執(zhí)行一次快照操作;每事務(wù)的平均大小在100字節(jié);
??????????????? autopurget.snapRetainCount:自動(dòng)清理快照時(shí),需要保存最近的快照個(gè)數(shù);
??????????????? autopurge.purgeInterval:purge操作的時(shí)間間隔,0表示不啟動(dòng);
??????????????? fsync.warningthresholdms:zk進(jìn)行事務(wù)日志fsync操作時(shí)消耗的時(shí)長報(bào)警閾值;
??????????????? weight.X=N:判斷quorum時(shí)投票權(quán)限,默認(rèn)1;
????????????????
????????????網(wǎng)絡(luò)配置:
??????????????? maxClientCnxns:每客戶端IP的最大并發(fā)連接數(shù);
??????????????? clientPortAddress:zk監(jiān)聽IP地址;
??????????????? minSessionTimeout:會話的最短超時(shí)時(shí)長;
??????????????? maxSessionTimeout:會話的最大超時(shí)時(shí)長
????????????????
????????????集群配置:
??????????????? initLimit:Follower連入Leader并完成數(shù)據(jù)同步的時(shí)長;
??????????????? syncLimit:心跳檢測的最大延遲;
??????????????? leaderServes:默認(rèn)zk的leader接收讀寫請求,額外還要負(fù)責(zé)協(xié)調(diào)各Follower發(fā)來的事務(wù)等;因此,為使得leader集中處理zk集群內(nèi)部信息,建議不讓leader直接提供服務(wù);
??????????????? cnxTimeout:Leader選舉期間,各服務(wù)器創(chuàng)建TCP連接的超時(shí)時(shí)長;
??????????????? ellectionAlg:選舉算法,目前僅支持FastLeaderElection算法一種;

  復(fù)制配置文件到集群各節(jié)點(diǎn),創(chuàng)建數(shù)據(jù)目錄并在其數(shù)據(jù)目錄下各自創(chuàng)建用于保存節(jié)點(diǎn)id的myid文件,其內(nèi)容僅為當(dāng)前節(jié)點(diǎn)的server id

[root@node01?conf]#?scp?zoo.cfg?node02:/usr/local/zookeeper/conf/
zoo.cfg?????????????????????????????????????????????????????????????????????????????????100%?1244???412.3KB/s???00:00???
[root@node01?conf]#?scp?zoo.cfg?node03:/usr/local/zookeeper/conf/
zoo.cfg?????????????????????????????????????????????????????????????????????????????????100%?1244???486.7KB/s???00:00???
[root@node01?conf]#?mkdir?/data/zookeeper?-pv
mkdir:?created?directory?‘/data’
mkdir:?created?directory?‘/data/zookeeper’
[root@node01?conf]#?echo?1?>/data/zookeeper/myid
[root@node01?conf]#?cat?/data/zookeeper/myid
1
[root@node01?conf]#?ssh?node02?'mkdir?-pv?/data/zookeeper/?&&?echo?2?>/data/zookeeper/myid?&&?cat?/data/zookeeper/myid'
mkdir:?created?directory?‘/data’
mkdir:?created?directory?‘/data/zookeeper/’
2
[root@node01?conf]#?ssh?node03?'mkdir?-pv?/data/zookeeper/?&&?echo?3?>/data/zookeeper/myid?&&?cat?/data/zookeeper/myid'?
mkdir:?created?directory?‘/data’
mkdir:?created?directory?‘/data/zookeeper/’
3
[root@node01?conf]#

提示:這里的myid中的server id是根據(jù)其配置文件中配置的server id,意思就是主配置文件中的server id 要和其當(dāng)前主節(jié)點(diǎn)中的myid保持一致,否則zk集群啟動(dòng)不了;如果只有一臺zkserver,可以只配置單臺zkserver的屬性信息,不用在其數(shù)據(jù)目錄下創(chuàng)建myid保存serverID;

  在各節(jié)點(diǎn)啟動(dòng)zookeeper

[root@node01?~]#?/usr/local/zookeeper/bin/zkServer.sh?--help
/usr/bin/java
ZooKeeper?JMX?enabled?by?default
Using?config:?/usr/local/zookeeper/bin/../conf/zoo.cfg
Usage:?/usr/local/zookeeper/bin/zkServer.sh?[--config?]?{start|start-foreground|stop|version|restart|status|print-cmd}
[root@node01?~]#?/usr/local/zookeeper/bin/zkServer.sh?start
/usr/bin/java
ZooKeeper?JMX?enabled?by?default
Using?config:?/usr/local/zookeeper/bin/../conf/zoo.cfg
Starting?zookeeper?...?STARTED
[root@node01?~]#?ssh?node02?'/usr/local/zookeeper/bin/zkServer.sh?start'
/usr/bin/java
ZooKeeper?JMX?enabled?by?default
Using?config:?/usr/local/zookeeper/bin/../conf/zoo.cfg
Starting?zookeeper?...?STARTED
[root@node01?~]#?ssh?node03?'/usr/local/zookeeper/bin/zkServer.sh?start'
/usr/bin/java
ZooKeeper?JMX?enabled?by?default
Using?config:?/usr/local/zookeeper/bin/../conf/zoo.cfg
Starting?zookeeper?...?STARTED
[root@node01?~]#?ss?-tnl
State??????Recv-Q?Send-Q????????????????Local?Address:Port???????????????????????????????Peer?Address:Port?????????????
LISTEN?????0??????128???????????????????????????????*:22????????????????????????????????????????????*:*?????????????????
LISTEN?????0??????100???????????????????????127.0.0.1:25????????????????????????????????????????????*:*?????????????????
LISTEN?????0??????50??????????????::ffff:192.168.0.41:3888?????????????????????????????????????????:::*?????????????????
LISTEN?????0??????50???????????????????????????????:::8080?????????????????????????????????????????:::*?????????????????
LISTEN?????0??????128??????????????????????????????:::22???????????????????????????????????????????:::*?????????????????
LISTEN?????0??????100?????????????????????????????::1:25???????????????????????????????????????????:::*?????????????????
LISTEN?????0??????50???????????????????????????????:::2181?????????????????????????????????????????:::*?????????????????
LISTEN?????0??????50???????????????????????????????:::35879????????????????????????????????????????:::*?????????????????
[root@node01?~]#

提示:可以看到node01上3888、2181、8080這三個(gè)端口都處于監(jiān)聽狀態(tài)了;8080是jetty監(jiān)聽的端口,用于管理用,如果修改其監(jiān)聽端口可以在配置文件中加admin.serverPort=來定義即可;

  node02上監(jiān)聽端口情況

[root@node02?local]#?ss?-tnl
State??????Recv-Q?Send-Q????????????????Local?Address:Port???????????????????????????????Peer?Address:Port?????????????
LISTEN?????0??????128???????????????????????????????*:22????????????????????????????????????????????*:*?????????????????
LISTEN?????0??????100???????????????????????127.0.0.1:25????????????????????????????????????????????*:*?????????????????
LISTEN?????0??????50??????????????::ffff:192.168.0.42:3888?????????????????????????????????????????:::*?????????????????
LISTEN?????0??????50???????????????????????????????:::8080?????????????????????????????????????????:::*?????????????????
LISTEN?????0??????128??????????????????????????????:::22???????????????????????????????????????????:::*?????????????????
LISTEN?????0??????100?????????????????????????????::1:25???????????????????????????????????????????:::*?????????????????
LISTEN?????0??????50???????????????????????????????:::2181?????????????????????????????????????????:::*?????????????????
LISTEN?????0??????50???????????????????????????????:::35589????????????????????????????????????????:::*?????????????????
LISTEN?????0??????50??????????????::ffff:192.168.0.42:2888?????????????????????????????????????????:::*?????????????????
[root@node02?local]#

提示:node02相對node01多監(jiān)聽了一個(gè)2888端口,這個(gè)端口只有l(wèi)eader節(jié)點(diǎn)才會監(jiān)聽,從查看端口的情況就可以判斷node02此時(shí)是leader節(jié)點(diǎn);

  node03上監(jiān)聽端口情況

[root@node03?local]#?ss?-tnl
State??????Recv-Q?Send-Q????????????????Local?Address:Port???????????????????????????????Peer?Address:Port?????????????
LISTEN?????0??????128???????????????????????????????*:22????????????????????????????????????????????*:*?????????????????
LISTEN?????0??????100???????????????????????127.0.0.1:25????????????????????????????????????????????*:*?????????????????
LISTEN?????0??????50??????????????::ffff:192.168.0.43:3888?????????????????????????????????????????:::*?????????????????
LISTEN?????0??????50???????????????????????????????:::8080?????????????????????????????????????????:::*?????????????????
LISTEN?????0??????128??????????????????????????????:::22???????????????????????????????????????????:::*?????????????????
LISTEN?????0??????100?????????????????????????????::1:25???????????????????????????????????????????:::*?????????????????
LISTEN?????0??????50???????????????????????????????:::46683????????????????????????????????????????:::*?????????????????
LISTEN?????0??????50???????????????????????????????:::2181?????????????????????????????????????????:::*?????????????????
[root@node03?local]#

 提示:node03和node01一樣,都沒有監(jiān)聽2888端口,說明這兩個(gè)幾點(diǎn)是follower節(jié)點(diǎn);到此一個(gè)三節(jié)點(diǎn)的zookeeper集群就搭建好了;

  測試:使用zkServer.sh status查看當(dāng)前節(jié)點(diǎn)狀態(tài)

  提示:可以看到node02是leader;

  把node02的zk重啟,看看它是否還是leader?

  提示:可以看到當(dāng)node02重啟后,再次加入集群就不再是leader了;

  使用zkCli.sh連接zk

[zk:?localhost:2181(CONNECTED)?0]??
ZooKeeper?-server?host:port?-client-configuration?properties-file?cmd?args
????????addWatch?[-m?mode]?path?#?optional?mode?is?one?of?[PERSISTENT,?PERSISTENT_RECURSIVE]?-?default?is?PERSISTENT_RECURSIVE
????????addauth?scheme?auth
????????close
????????config?[-c]?[-w]?[-s]
????????connect?host:port
????????create?[-s]?[-e]?[-c]?[-t?ttl]?path?[data]?[acl]
????????delete?[-v?version]?path
????????deleteall?path?[-b?batch?size]
????????delquota?[-n|-b]?path
????????get?[-s]?[-w]?path
????????getAcl?[-s]?path
????????getAllChildrenNumber?path
????????getEphemerals?path
????????history
????????listquota?path
????????ls?[-s]?[-w]?[-R]?path
????????printwatches?on|off
????????quit
????????reconfig?[-s]?[-v?version]?[[-file?path]?|?[-members?serverID=host:port1:port2;port3[,...]*]]?|?[-add?serverId=host:port1:port2;port3[,...]]*?[-remove?serverId[,...]*]
????????redo?cmdno
????????removewatches?path?[-c|-d|-a]?[-l]
????????set?[-s]?[-v?version]?path?data
????????setAcl?[-s]?[-v?version]?[-R]?path?acl
????????setquota?-n|-b?val?path
????????stat?[-w]?path
????????sync?path
????????version
Command?not?found:?Command?not?found??
[zk:?localhost:2181(CONNECTED)?1]

 提示:在集群任意一個(gè)節(jié)點(diǎn)使用zkCli.sh 即可連接當(dāng)前節(jié)點(diǎn)的2181端口;連接以后會有一個(gè)zk的控制臺,我們輸入一個(gè)不存在的命令,可打印在當(dāng)前控制臺上所使用的命令有哪些;

  查看數(shù)據(jù)節(jié)點(diǎn)

[zk:?localhost:2181(CONNECTED)?1]?ls
ls?[-s]?[-w]?[-R]?path
[zk:?localhost:2181(CONNECTED)?2]?ls?/
[zookeeper]
[zk:?localhost:2181(CONNECTED)?3]

 提示:zk的數(shù)據(jù)節(jié)點(diǎn)類似Linux文件系統(tǒng),它也是一顆倒置的樹狀結(jié)構(gòu);

  創(chuàng)建一個(gè)數(shù)據(jù)節(jié)點(diǎn),并給一個(gè)數(shù)據(jù)內(nèi)容將其存入到創(chuàng)建的節(jié)點(diǎn)

[zk:?localhost:2181(CONNECTED)?11]?create?/test?"test01"
Created?/test
[zk:?localhost:2181(CONNECTED)?12]?ls?/
[test,?zookeeper]
[zk:?localhost:2181(CONNECTED)?13]

  查看/test節(jié)點(diǎn)的數(shù)據(jù)  提示:默認(rèn)不指定任何選項(xiàng),創(chuàng)建的節(jié)點(diǎn)都是持久節(jié)點(diǎn),即會話斷開對應(yīng)節(jié)點(diǎn)不會自動(dòng)刪除;如果需要?jiǎng)?chuàng)建一個(gè)臨時(shí)節(jié)點(diǎn)需要用到-e選項(xiàng)來明確指定創(chuàng)建一個(gè)臨時(shí)節(jié)點(diǎn);

[zk:?localhost:2181(CONNECTED)?13]?get?/test
test01
[zk:?localhost:2181(CONNECTED)?14]

 修改/test節(jié)點(diǎn)的數(shù)據(jù)

[zk:?localhost:2181(CONNECTED)?14]?set?/test?"test?data?version?2"
[zk:?localhost:2181(CONNECTED)?15]?get?/test
test?data?version?2
[zk:?localhost:2181(CONNECTED)?16]

  刪除/test節(jié)點(diǎn)

[zk:?localhost:2181(CONNECTED)?16]?delete?/test
[zk:?localhost:2181(CONNECTED)?17]?ls?/
[zookeeper]
[zk:?localhost:2181(CONNECTED)?18]

 提示:delete是刪除一個(gè)下面沒有子節(jié)點(diǎn)的節(jié)點(diǎn),如果對應(yīng)節(jié)點(diǎn)下還有子節(jié)點(diǎn),需要用到deleteall來刪除;

  刪除帶有子節(jié)點(diǎn)的節(jié)點(diǎn)

[zk:?localhost:2181(CONNECTED)?25]?ls?/
[zookeeper]
[zk:?localhost:2181(CONNECTED)?26]?create?/test?"test01"
Created?/test
[zk:?localhost:2181(CONNECTED)?27]?ls?/
[test,?zookeeper]
[zk:?localhost:2181(CONNECTED)?28]?create?/test/aa?"test02"
Created?/test/aa
[zk:?localhost:2181(CONNECTED)?29]?ls?/test
[aa]
[zk:?localhost:2181(CONNECTED)?30]?ls?-R?/test
/test
/test/aa
[zk:?localhost:2181(CONNECTED)?31]?delete?/test
Node?not?empty:?/test
[zk:?localhost:2181(CONNECTED)?32]?deleteall?/test
[zk:?localhost:2181(CONNECTED)?33]?ls?/
[zookeeper]
[zk:?localhost:2181(CONNECTED)?34]


  提示:ls -R表示遞歸查看指定節(jié)點(diǎn)及其子節(jié)點(diǎn);

  查看集群成員配置信息

[zk:?localhost:2181(CONNECTED)?38]?config
server.1=192.168.0.41:2888:3888:participant
server.2=192.168.0.42:2888:3888:participant
server.3=192.168.0.43:2888:3888:participant
version=0
[zk:?localhost:2181(CONNECTED)?39]

  查看指定節(jié)點(diǎn)的狀態(tài)信息

[zk:?localhost:2181(CONNECTED)?40]?stat
stat?[-w]?path
[zk:?localhost:2181(CONNECTED)?41]?stat?/
cZxid?=?0x0
ctime?=?Thu?Jan?01?08:00:00?CST?1970
mZxid?=?0x0
mtime?=?Thu?Jan?01?08:00:00?CST?1970
pZxid?=?0x200000014
cversion?=?9
dataVersion?=?0
aclVersion?=?0
ephemeralOwner?=?0x0
dataLength?=?0
numChildren?=?1
[zk:?localhost:2181(CONNECTED)?42

  zk四字命令使用

  查看生效的配置

[root@node01?~]#?echo?conf?|nc?node01?2181??????????????????
conf?is?not?executed?because?it?is?not?in?the?whitelist.
[root@node01?~]#

  提示:默認(rèn)zk沒有開啟四字命令;需要到配置文件中配置4lw.commands.whitelist=*,然后保存重啟zk即可支持四字命令;

  重啟zk,再來使用conf命令查看生效配置信息

[root@node01?~]#?/usr/local/zookeeper/bin/zkServer.sh?restart
/usr/bin/java
ZooKeeper?JMX?enabled?by?default
Using?config:?/usr/local/zookeeper/bin/../conf/zoo.cfg
/usr/bin/java
ZooKeeper?JMX?enabled?by?default
Using?config:?/usr/local/zookeeper/bin/../conf/zoo.cfg
Stopping?zookeeper?...?STOPPED
/usr/bin/java
ZooKeeper?JMX?enabled?by?default
Using?config:?/usr/local/zookeeper/bin/../conf/zoo.cfg
Starting?zookeeper?...?STARTED
[root@node01?~]#?echo?conf?|nc?node01?2181??????????????????
clientPort=2181
secureClientPort=-1
dataDir=/data/zookeeper/version-2
dataDirSize=134218360
dataLogDir=/data/zookeeper/version-2
dataLogSize=134218360
tickTime=2000
maxClientCnxns=60
minSessionTimeout=4000
maxSessionTimeout=40000
clientPortListenBacklog=-1
serverId=1
initLimit=10
syncLimit=5
electionAlg=3
electionPort=3888
quorumPort=2888
peerType=0
membership:
server.1=192.168.0.41:2888:3888:participant
server.2=192.168.0.42:2888:3888:participant
server.3=192.168.0.43:2888:3888:participant
version=0[root@node01?~]#

  查看當(dāng)前server上的zk連接信息

[root@node01?~]#?echo?cons?|?nc?node01?2181
?/192.168.0.41:58920[0](queued=0,recved=1,sent=0)
?
[root@node01?~]#

  測試zk是否能夠正常連接

[root@node01?~]#?echo?ruok?|?nc?node01?2181???
imok[root@node01?~]#

 提示:返回imok表示zk節(jié)點(diǎn)上可以正常連接的;

  列出當(dāng)前zkserver的版本信息、數(shù)據(jù)接收/發(fā)送量、連接數(shù)、節(jié)點(diǎn)模式、Node數(shù)、最大/平均/最小延遲數(shù)

[root@node01?~]#?echo?srvr?|?nc?node01?2181???
Zookeeper?version:?3.6.2--803c7f1a12f85978cb049af5e4ef23bd8b688715,?built?on?09/04/2020?12:44?GMT
Latency?min/avg/max:?0/0.0/0
Received:?6
Sent:?5
Connections:?1
Outstanding:?0
Zxid:?0x200000016
Mode:?follower
Node?count:?5
[root@node01?~]#

  列出事件監(jiān)聽器的連接數(shù)和總數(shù)

[root@node01?~]#?echo?wchs?|nc?node01?2181
0?connections?watching?0?paths
Total?watches:0
[root@node01?~]#

  列出當(dāng)前zkserver的環(huán)境信息

[root@node01?~]#?echo?envi|?nc?node01?2181
Environment:
zookeeper.version=3.6.2--803c7f1a12f85978cb049af5e4ef23bd8b688715,?built?on?09/04/2020?12:44?GMT
host.name=node01.test.org
java.version=1.8.0_262
java.vendor=Oracle?Corporation
java.home=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64/jre
java.class.path=/usr/local/zookeeper/bin/../zookeeper-server/target/classes:/usr/local/zookeeper/bin/../build/classes:/usr/local/zookeeper/bin/../zookeeper-server/target/lib/*.jar:/usr/local/zookeeper/bin/../build/lib/*.jar:/usr/local/zookeeper/bin/../lib/zookeeper-prometheus-metrics-3.6.2.jar:/usr/local/zookeeper/bin/../lib/zookeeper-jute-3.6.2.jar:/usr/local/zookeeper/bin/../lib/zookeeper-3.6.2.jar:/usr/local/zookeeper/bin/../lib/snappy-java-1.1.7.jar:/usr/local/zookeeper/bin/../lib/slf4j-log4j12-1.7.25.jar:/usr/local/zookeeper/bin/../lib/slf4j-api-1.7.25.jar:/usr/local/zookeeper/bin/../lib/simpleclient_servlet-0.6.0.jar:/usr/local/zookeeper/bin/../lib/simpleclient_hotspot-0.6.0.jar:/usr/local/zookeeper/bin/../lib/simpleclient_common-0.6.0.jar:/usr/local/zookeeper/bin/../lib/simpleclient-0.6.0.jar:/usr/local/zookeeper/bin/../lib/netty-transport-native-unix-common-4.1.50.Final.jar:/usr/local/zookeeper/bin/../lib/netty-transport-native-epoll-4.1.50.Final.jar:/usr/local/zookeeper/bin/../lib/netty-transport-4.1.50.Final.jar:/usr/local/zookeeper/bin/../lib/netty-resolver-4.1.50.Final.jar:/usr/local/zookeeper/bin/../lib/netty-handler-4.1.50.Final.jar:/usr/local/zookeeper/bin/../lib/netty-common-4.1.50.Final.jar:/usr/local/zookeeper/bin/../lib/netty-codec-4.1.50.Final.jar:/usr/local/zookeeper/bin/../lib/netty-buffer-4.1.50.Final.jar:/usr/local/zookeeper/bin/../lib/metrics-core-3.2.5.jar:/usr/local/zookeeper/bin/../lib/log4j-1.2.17.jar:/usr/local/zookeeper/bin/../lib/json-simple-1.1.1.jar:/usr/local/zookeeper/bin/../lib/jline-2.14.6.jar:/usr/local/zookeeper/bin/../lib/jetty-util-9.4.24.v20191120.jar:/usr/local/zookeeper/bin/../lib/jetty-servlet-9.4.24.v20191120.jar:/usr/local/zookeeper/bin/../lib/jetty-server-9.4.24.v20191120.jar:/usr/local/zookeeper/bin/../lib/jetty-security-9.4.24.v20191120.jar:/usr/local/zookeeper/bin/../lib/jetty-io-9.4.24.v20191120.jar:/usr/local/zookeeper/bin/../lib/jetty-http-9.4.24.v20191120.jar:/usr/local/zookeeper/bin/../lib/javax.servlet-api-3.1.0.jar:/usr/local/zookeeper/bin/../lib/jackson-databind-2.10.3.jar:/usr/local/zookeeper/bin/../lib/jackson-core-2.10.3.jar:/usr/local/zookeeper/bin/../lib/jackson-annotations-2.10.3.jar:/usr/local/zookeeper/bin/../lib/commons-lang-2.6.jar:/usr/local/zookeeper/bin/../lib/commons-cli-1.2.jar:/usr/local/zookeeper/bin/../lib/audience-annotations-0.5.0.jar:/usr/local/zookeeper/bin/../zookeeper-*.jar:/usr/local/zookeeper/bin/../zookeeper-server/src/main/resources/lib/*.jar:/usr/local/zookeeper/bin/../conf:
java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
java.io.tmpdir=/tmp
java.compiler=
os.name=Linux
os.arch=amd64
os.version=3.10.0-693.el7.x86_64
user.name=root
user.home=/root
user.dir=/root
os.memory.free=26MB
os.memory.max=889MB
os.memory.total=37MB
[root@node01?~]#

  好了,到此zk集群搭建就完成了,通常zk集群應(yīng)用的場景很多,比如分布式應(yīng)用程序可以基于它實(shí)現(xiàn)數(shù)據(jù)的發(fā)布/訂閱、負(fù)載均衡、名稱服務(wù)、分布式協(xié)調(diào)/通知、集群管理、Master選舉、分布式鎖和分布式隊(duì)列;很多分布式服務(wù)都可以借助zk集群做服務(wù)發(fā)現(xiàn)和服務(wù)注冊;






粉絲福利:108本java從入門到大神精選電子書領(lǐng)取

???

?長按上方鋒哥微信二維碼?2 秒
備注「1234」即可獲取資料



感謝點(diǎn)贊支持下哈?

瀏覽 30
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評論
圖片
表情
推薦
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 色婷婷丁香五月| 欧美打炮网| 91丨露脸丨熟女抽搐| 淫揉BBB揉揉揉BBBBB| 青草成人在线视频| 中国免费视频高清观看| 无码人妻视频| 日韩怡春院| 中文字幕无码网站| 亚洲有码在线视频| 婷婷久热| 成人在线激情| 精产国品一区二区三区| 欧美成人午夜视频| 黄色操逼网站| 日韩大黄| 天堂中文在线播放| 精品视频99| 一级特黄A片| 水果派解说A∨无码区| 香蕉福利视频| 一级a一级a免费观看视频Al明星| 91视频专区| 黄色a片视频| 国产精品啪啪啪啪| 国产小视频免费在线观看| 无码人妻AⅤ一区二区三区A片一| 免费成人毛片| 在线播放JUY-925被丈夫上司侵犯的第7天| 免费av片| 91欧美性爱| 天天色天天色| 黄色视频网站亚洲| 欧美精品成人免费片| 中文字幕免费在线| www.污| 亚洲色综合久久五月| 日本中文字幕中文翻译歌词| 大肉大捧视频免费观看| 日韩无码黄色电影| 欧美aaaaaa| 丁香婷婷男人天堂| 97人人操| 午夜精品无码| 国产精品国产| 91探花视频在线观看| 免费视频无码| 欧美日韩亚洲一区二区| 日日舔| 日日夜夜天天综合| 人妻av一区二区三区| 成人在线乱码视频| 国产操屄视频| 免费A片在线观看| AV在线免费观看网站| 免费看操片| 人人干天天干| www.亚洲视频| 又黄又爽视频| 资源av| 蜜臀无码在线| 福利所导航| 国产性精品| 亚洲图片激情乱伦小说| 一区二区av| 亚洲精品午夜福利| 国产1区2区| 成人三级片在线| 五月丁香免费视频| 成人无码区免费A片久久| 九九综合伊人7777777| 91成人网站| 免费日韩黄色电影| 五月天成人导航| 亚洲视频偷拍| 狠狠肏视频| 夜夜骑免费视频| 欧美黄片AAA| 91麻豆大奶巨乳一区白虎| 99操| 久久久在线| 猛操美女| 青娱乐国产在线| 九九国产视频| 熟女人妻人蜜桃视频| www.国产视频| 午夜黄色影院| 成人激情在线观看| 超碰啪啪| 激情五月天影院| 国产成人高潮毛片| 九色PORNY蝌蚪视频| 日韩亚洲欧美在线观看| 五月天激情导航| 午夜福利视频91| 久久精品视频9| 国产亲子乱XXXXimim/| 国产女人18毛片水真多成人如厕| 日本亲子乱婬一级A片| 日韩久久精品视频| 熟女熟妇人妻一区二区三区| 老司机精品| 国产av天天| 免费看黄色AV| 91在线成人电影| 国产色悠悠| 免费在线观看一区| 亚洲福利免费观看| 天天操天天日天天射| 久久精品波多野结衣| 亚洲成人午夜电影| 欧美女人日逼视频| 国产操逼大片| 日本一本草久p| 天堂网在线播放| 男女无套在线观看免费| 亚洲男人的天堂网| 中国国产乱子伦| 婷婷国产精品| 中文字幕免费高清网站| 男人的天堂视频网站| 久久久97| 婷婷在线综合| 特级无码| 三级片在线观看视频| 97无码精品人妻| 精品免费视频| 午夜黄片| 夜夜爽日日爽| 5252a我爱haose01我愿| 老太色HD色老太HD.| 无码人妻一区二区三区三| 热re99久久精品国产99热| 扒开让我91看片在线看| 人妻啪啪| 一级日逼视频| 91毛片在线观看| 日本91| 有码一区二区三区| 亚洲无码视频在线看| 一级理论片| 天堂中文在线视频| 91在线精品秘一区二区黄瓜| 欧美日本成人网站入口| 天天亚洲| 91国产精品在线视频| 91精品少妇高潮一区二区三区不卡| 亚洲无码av电影| 永久在线| 国产精品揄拍100视频| 岛国无码av| 看黄色一级片| 国产偷拍网站| 国产人妖视频| 99国产视频| AⅤ视频在线观看| 一区二区三区三级片| 欧美日韩在线视频免费播放 | 成人五区| 蜜臀久久99精品久久久久酒店更新时间 | 中文字幕乱在线| 江苏妇搡BBBB搡BBBB-百度| 亚洲天堂在线观看免费视频| 毛片黄色视频| 日本熟妇一区二区三区| 夜夜爽久久精品91| 黄色视频在线观看网站| 中文字幕在线观看1| 一区二区精品视频| 在线天堂a| 国产精品秘ThePorn| 欧美日韩亚洲视频| 久久久亚洲无码精品| 成人乱无码AV在线观看| 国产精品A片| 四虎2025在线51| 成人国产精品秘欧美高清| 日本少妇BBw| 婷婷亚洲精品| 国产高潮在线| 成人视频免费| 亚洲无码第一页| 日逼片A| 天天色图片| 亚洲高清福利视频| 成人AV一区二区三区| 久久不射| 一级aa片| np高辣调教视频| 国产激情123区| 内射一区二区三区| 成人无码观看| 亚洲av男人天堂| 色色五月婷婷| 成人性生活一级片| 中字幕视频在线永久在线观看免费| 久久久91人妻无码精品蜜桃ID| 欧美日韩亚洲天堂| 18禁网站禁片免费观看| 国产电影一区二区三区| 亚洲精品乱码久久久久久按摩观| 国产精品久久免费视频| 香蕉成人网站| 亚洲秘无码一区二区三区蜜桃中文| 久久cao| 一级久久| 麻豆少妇| www.99在线| 国产成人无码精品久在线观看| 中文字幕免费高清在线观看| 国产精品一级| 婷婷五月天丁香成人社区| 最近中文字幕无码| 丁香五月婷婷啪啪| 黄色一级片网站| 成人网在线观看| 69av电影| 中文字幕免费无码| 中文无码播放| 欧美+日产+中文| 狼色视频| 91精品电影| 黑人久久| 日韩免费在线观看一区入口| 东北老女人性爱视频| 怡春院久久| 亚洲国产精品久久人人爱| 五月婷婷中文字幕| 大香蕉伊人电影| 成人在线中文| 91无码在线视频| 无码一道本| av色站| av官网| 97精品视频在线观看| 成人免费观看视频| 另类老妇性BBBWBBW| 怡红院成人在线| 91人妻人人澡人人爽人妻| 久久国产性爱| 国产日本欧美韩国久久久久| 国产精品中文字幕在线观看| 国产色情视频在线观看| 亚洲无码AV电影| 色色com| 国产精品V日韩精品V在线观看 | 久久人人爱| 久久久一区二区三区四曲免费听| 91逼| 久久一卡二卡| 日韩高清AV| 久射精品| 美女视频毛片| www.色五月| 日日撸视频| 操逼网址大全| 俺也去也| 久久久精品| 久久免费成人电影| 亚洲.欧美.丝袜.中文.综合| 中文字幕专区| 亚洲少妇网| 亚洲A片一区二区三区电影网| 中文字幕国产精品| 欧美一二三区黄色免费视屏| 色哟哟视频| 特级毛片WWW| 久久久久99精品成人片欧美一区| 人人弄人人| 骚妇大战黑人15P| 成人在线黄色视频| 欧美成人午夜影院| 成人丁香| 日韩视频第一页| 最好看2019中文在线播放电影| 草久免费视频| 国产精品一区二区在线| 成人黄色一级| 欧美日韩亚洲综合| 国产黄片免费观看| 亚洲日本一区二区三区| 国产精品高潮呻吟久久| 欧美丰满人妻免费视频人| 亚洲欧美在线一区| 免费无码在线播放| 色逼视频| 欧美老女人的逼| 日皮视频在线看| 青娱乐青青草| PORNY九色视频9l自拍| 国产成人在线免费| 日韩在线观看免费| 亚洲av网站在线观看| 亚洲天堂男人| 人妻无码A| 色播AV| 成人免费a片| 色婷婷五月激情| 欧美日韩成人片| 亚洲第一伊人| 午夜操逼逼| 黄色视频久久| 免费成人AV| 日本在线无码| 熟女人妻人妻の视频| 婷婷乱伦| 日韩欧美国产成人| 色婷婷五月天| 国产精品久久久久久久9999| 日韩精品五区| 草av| 乱子伦国产精品一区二区| 成人黄色在线观看| 成人综合在线观看| 久久99精品久久久久久| 91麻豆一区二区| 亚洲第一色图| 精品人妻一二三区| 筱田步美| 国产乱妇无码毛片A片在线看下载 日韩电影免费在线观看中文字幕 欧美性爱中文字幕 | 亚洲黄色影院| AV国产高清| 91久久国产综合久| 国产精品久久久无码专区| 2019国产精品| 国产精品揄拍一区二区| 红桃91人妻爽人妻爽| 在线观看黄色AV| 韩国精品一区| 青青草手机在线观看| 亚洲无码视频在线观看| 精品成人影视| 国产十八岁在线观看免费| 先锋AV资源网| 成人免费在线观看| 在线高清无码不卡| 有码中文字幕在线观看| aa人人操夜夜操人人| 亚洲AV成人网| 二区无码| 中文字幕在线乱| 无码一道本| 国产精品一区二区在线播放| 久久精品国产亚洲| 人妻无码精品蜜桃| 日批免费网站| 一本免费视频| 成人做爰100片免费观看视频| 日本一级婬片A片免费看| 九九精品热播| 五月天青青草超碰免费公开在线观看| wwwAV在线观看| 免费看无码网站成人A片| 亚洲第一黄色视频| 成人网站免费在线| 欧美色图俺去了| 学生妹做爱视频| 日本wwwwww| 天堂网| 激情麻豆| 成人做爰黄AAA片免费直播岛国| 国产91免费视频| 国内精品久久久久| 亚洲高清视频无码| 黄色视频网站在线免费观看| 久久黄色A片| jizzjizz欧美| 国产AV网| 婷婷丁香五月综合| 国产传媒av| 国产乱妇乱子伦视频免费观看让女人 | 99性爱视频| 欧美成人看片黄a免费看| 亚洲av网站| 大香蕉天天操| 亚洲欧美在线观看| 色骚综合| 性爱免费专区| 欧洲成人午夜精品无码区久久| 亚洲AV无码第一区二区三区蜜桃| 超碰2022| 免费观看久久久| 在线无码不卡| 夜夜网站| 青青伊人久久| 一区二区三区四区在线视频| 免费高清无码在线观看| 欧美视频在线观看一区| 老熟女痒到不行-ThePorn| 亚洲成人a| 西西人体444大胆高清张悠雨| 伊人婷婷大香蕉| 五月久久| 大地影视中文第三页最新在线观看| 精品夜夜澡人妻无码AV| 插逼视频网站| 国产精选在线| 免费大黄网站| 亚洲免费av在线| 一本色道久久综合亚洲精品久久| 99精品国产热久久91色欲| 激情五月天成人| 欧美日韩中文字幕视频| 99在线免费视频| 在线播放内射| 午夜日韩乱伦| 99无码国产成人精品| 伊人色色色| 久久精品成人电影| 国产视频a| 免费黄色在线观看| 麻豆精品在线观看| 俺去了无码| 成人网站av| 人人爽人人操人人爱| 青娱乐国产在线| 欧美三级理论片| 一级做a爰片毛片A片| 97久久人人| 高清无码操逼视频| 日本午夜福利电影| 天天爽夜夜爽夜夜爽精品| 中文字幕免费视频| 可以免费看AV的网站| 精品蜜桃秘一区二区三区观看| 亚洲一区二区三| 黑人在线视频| 日韩无码高清视频| 久久在线精品| 国内精品人妻无码久久久影院蜜桃| 男人的天堂2019| 好男人WWW社区在线视频夜恋| 一见钟情的韩国电影| 免费手机av| 天天干夜夜操| 强伦轩农村人妻| 色老板最新地址| 久久久中文字幕| 久草加勒比| 在线观看黄色网页| 99成人| 日韩黄片免费看| 一本大道久久久久| 久久久久久网站| 谁有毛片网站| 99伊人在线| 欧美黄色性爱视频| 日本一级婬片免费放| 日韩黄色A级片| 国产色无码网站www色视频| 亚洲一| 亚洲精品欧美久久婷婷| 成人无码日韩| 在线播放高清无码| 91精品综合久久久久久五月丁香| 日韩毛片中文字幕| 特级西西WWW无码| 成人A毛片| 京东一热本色道久久爱| 二级黄色毛片| 香蕉成人网| 99re免费视频| 久久伊人亚洲| 国产久久视频| 另类老妇奶BBBBwBB| 国产69视频在线观看| 中文字幕无码在线| 日韩成人一区二区| 91在线无码精品秘入口电车| 人妻无码| 免费v片在线观看| 九色PORNY丨自拍蝌蚪| 国精品无码人妻一区二区三区免费 | 中文字幕一级片| 久久人妻| 精品成人一区二区三区| 久久久永久免费视频| 亚洲中文字幕av| 豆花网| 99久热在线精品| 懂色一区二区三区免费| 欧美日韩国产一区二区| 亚洲无码视频看看| 精品国产AV鲁一鲁一区| xxx综合网| 无套内射学生妹去看片| 福利在线看| 欧美日韩午夜福利视频| 成人网站免费在线观看| 天天日夜夜拍| 日韩欧美一级A片| 中文字幕在线免费观看视频| 日韩在线一级| 中文字幕无码播放| AV性爱社区| 欧美性爱在线视频| 日韩一区二区三| 欧美婷婷在线| 中文字幕免费在线观看| 成人AA片| 99re超碰| 天天干夜夜操| 五月婷婷色| 无码AⅤ一区二区三区| 我爱大香蕉| 蜜桃视频成人版网站| 丁香六月婷婷综合| 日老女人的逼| 高清无码在线视频观看| 亚洲欧美在线一区| 四虎网站| 中文字幕第2页| 三级内射| 大香蕉玖玖| 国产日韩欧美| 国产久久久久久久| 日韩在线视频中文字幕| 波多野吉衣中文字幕| 长泽梓黑人初解禁BDD07| 人人干人人澡| 欧美日韩精品一区| 亚洲精品高清视频| 人人操干| 日韩超碰| 午夜a片| 人妻斩り43歳| 激情五月天av| 亚洲性精| 黄色无码网站| 999国产精品| 大伊香蕉久久| 乱人伦欲国语对白| 轻轻操内射无码| 国产乱子伦一区二区三精品| 中日韩在线| 黄色一级片在线| 免费日韩AV| 1插菊花综合网| 久久xx| 午夜九九九| 苍井空无码在线观看| 电家庭影院午夜| 在线观看黄片| EEUSS| 一区二区三区视频在线| 91看片看婬黄大片女跟女| 亚洲精品18在线观看| 俺来也官网欧美久久精品| 不卡二区| 五月天久久婷婷| 天天日,天天干,天天操| 亚洲AV无码成人H动漫| 日韩AV无码免费| 五月婷婷在线观看| 岛国av在线播放| 亚洲精品久久久久avwww潮水| 日韩AV无码一区二区| 成人黄色在线观看视频| 在线观看日韩三级片av| 国产传媒在线观看| 成人无码区免费| 日韩久久人妻| 国产精品v欧美精品v日韩| 精品国产精品国产精品国产网站| 国产精品的电影| 婷婷五月丁香网| 大黑人荫蒂BBBBBBBBB| 久久久成人免费视频| 男女一区二区| 国产高清AV无码| 欧美综合亚洲图片综合区| 逼特逼在线观看| 黄色激情视频网站| 家庭乱伦av| 伊人99re| 久久久久久久久久久久高清毛片一级 | 欧洲亚洲视频| 日韩无码中文字幕视频| 亚洲无码乱码精品| 免费的黄色片| 日韩肏屄视频在线观看| 国产成人久久| 特级特黄AAAAAAAA片| 大香蕉av在线观看| 中文在线字幕免费观看| 亚洲成人777| 日韩精品中文字幕在线观看| 色吊妞| 思思热思思操免费视频| 激情五月天婷婷| 亚洲人成在线观看| 一道本AV| 无码av免费精品一区二区三区| 初尝人妻滑进去了莹莹视频| 亚洲精品18禁| 麻豆国产91| 日韩AV成人无码久久电影| 岛国A视频| 亚洲任你操超碰在线| 日韩三级小说| 夜夜爽久久精品91| 日韩欧美高清第一期| 黄色视频免费播放| 91在线一区二区三区| a片视频免费| 懂色av懂色av粉嫩av| 久久国产高清视频| 蜜桃av久久久亚洲精品| 中文字幕一区三区三A片密月| 日韩小电影| 77777色婷婷| 国产人成一区二区三区影院| 超碰97久久| 欧美日韩在线电影| 美女大香蕉| 欧美人人爱| 亚洲观看黄色网| 亚洲热视频在线观看| 97免费视频在线观看| 国产a毛一级,a毛一级| 中文无码字幕视频| 精品国产乱子伦一区二区三区,小小扐| 日日射人妻| 狠狠狠干| 91人人妻| 日韩人妻精品无码久久| 亚洲免费性爱视频| 亚洲天天| 美女自慰网站在线观看| 日韩黄色在线| 亚洲欧洲av| 亚洲AV无码国产综合专区| 色吧| 少妇搡BBBB搡BBB搡AA| 久久久久久伊人| 五月丁香六月色| 人妻18无码人伦一区二区三区精品| 好屌肏| 16一17女人毛片| 伊人私人影院| 69AV视频网站| 日韩人妻无码网站| 在线观看黄a| 大鸡巴日| www伦理片-韩国三级三级三级a三级-成人AV | а√最新版天堂中文在线| 成人国产精品视频| 成人亚洲电影| 台湾成人视频| 91精品免费视频| 国产精品欧美一区二区三区苍井空| 婷婷中文网| 日韩乱伦AV| 久久涩| 亚洲国产熟妇无码日韩| 国产小视频在线播放| 杨贵妃一级婬片90分钟| 国产精品免费人成人网站酒店| 亚洲国产精品二二三三区| 欧美在线无码| 草B网| 黄色在线免费观看网站| 日本大香蕉伊人| av天堂无码| 先锋影音一区二区| 欧美一区二区三区不卡| 色资源在线观看| 伊人久久AV| 中文字幕丰满的翔田千里| 欧美成人A片AAA片在线播放| 乱伦小说五月天| 在线天堂a| 天天爽夜夜操| 色色网站在线观看| 亚洲天堂成人在线| 国产激情在线观看视频| 欧美91视频| 午夜av在线免费观看| 影音先锋国产在线| AV福利在线观看| ThePorn-成人网站入口| 青青在线免费视频| 2019人人操| 成人网站免费视频| 欧美性爱一级| 天天操夜夜操人人操| 人人澡人人澡人人| 婷婷五月影院| 一区二区网站| 日本一级黄色电影| 亚洲中文字幕在线免费观看视频| 免费国产黄色| 日韩视频中文字幕| 人人草人人| 国产男女性爱视频播放| 日韩另类| 亚洲三级无码视频| 亚洲免费观看A∨中文| 日韩在线观看免| 成人无码影院日韩,成人年…| 欧美午夜性爱视频| 西西4444大胆无码视频| 91熟女乱伦| 成人在线免费电影| 91啦丨露脸丨熟女色啦| 人妻无码久久| www.国产在线观看| 精品久久久久久久久久| 欧美日韩国产精品| 欧美成人一区二区三区| 强伦轩人妻一区二区三区最新版本更新内容 | 国产精品毛片一区视频播| 色吊妞| 啊啊啊亚洲| 国产中文字幕免费| 亚洲无码久久精品| 中文字幕亚洲欧美| av岛国免费| 午夜高清无码视频| 欧美久久久久| 蜜桃AV| 亚洲狼人综合网| 91含羞草www·Com| 欧美精品在线观看视频| 最新国产视频| 真实国产乱子伦毛片| 欧美后门菊门交| 久久人体| 中文字幕你懂的在线三级| 操操操操一本到| 日韩AV资源网| 亚洲国产视频一区| 北条麻妃JUX-869无码播放| 俺去俺来WWW色官方| 欧美亚洲中文字幕| 丁香五月婷婷色| 欧美日屄| 人人操碰成人网| 亚洲国产成人精品激情在线 | 91网站在线播放| 成人在线免费电影| www.尤物视频| 亚洲AV成人片无码网站网蜜柚| 日本高清无码| 蜜桃影视| 中文字幕无码综合| 日本老女人视频| 久久精品一区二区三区不卡牛牛| 中文字幕2025年最好看电视剧| 欧美色999| 操逼动漫| 韩国午夜电影| 色99网站| 91精品婷婷国产综合| 免费A在线观看| 中文字幕在线日亚洲9| 91在线小视频| 伊人97| 黄片91| 日本久久久久| 国产丰满乱子伦无码| 国产小视频在线播放| 中文精品字幕人妻熟女| 性爱综合网| 国产最新在线视频| 韩日综合在线| 性爱小说视频| 欧美一级黄| 国产91白丝在一线播放| 五月综合激情| 国产情趣网站| 日韩AV免费网站| 国产精品99精品| 91麻豆精品视频| 国产欧美一区二区三区四区 | 黄色成人在线视频| 黄色片免费看| 99热在线观看精品| 超碰免费99| 中文成人无字幕乱码精品区| 国产乱伦自拍| 欧美国产精品| 国产另类自拍| 9I成人免费版视频| 视色视频在线观看18| 99在线视频精品| 日韩人妻精品中文字幕| 国产精品久久久无码专区| 91免费观看网站| 少妇厨房愉情理伦BD在线观看 | 综合伊人| 国产久久视频在线观看| 人妻啪啪| 婷婷五月丁香色| 伊人久久大香线蕉av一区| 日韩中文字幕在线| 级婬片AAAAAAA免费| 亚洲黄色Av| 日韩a级毛片| 日本一区二区在线| 亚洲性爱AV网站| 天天日天天噜| 亚洲中文字幕视频在线| 3344gc在线观看入口| 99热久| 欧美三级免费| 在线播放国产精品| 青娱乐自拍偷拍| 亚洲日韩一区二区| 国产麻豆精品ThePorn| 国产精品人妻无码久久久郑州天气网 | 国产中文字幕片| 亚洲精品在线观看免费| 伊人精品在线| www.国产精品| 亚洲欧美日韩黑料吃瓜在线观看| 大香蕉色婷婷| 黄视频免费| 亚洲精品成人无码毛片| 人人草人人| 日韩中文字幕一区二区| 久久狼人| 亚洲无码视频免费在线观看| 欧美撒色逼撒| 大香蕉青青| 91大香蕉视频| 人人人人操| 国产AV18岁| 91高潮久久久久久久| 超碰9999| 国产乱婬AAAA片视频| 91精品人妻人人爽| 丁香六月久久| 四虎黄色片| 高清免费无码| 欧洲a视频| 夜操| 蜜臀久久99精品久久久老牛影视 | 91九色蝌蚪91POR成人| 欧美成人天堂| 国产无码专区| 先锋av资源在线| 日韩乱妇| 人人爽人人干| av色站| 成人av免费观看| 午夜av在线观看| 91成人片| 东北老女人性爱视频| 中日韩在线| 欧美视频免费| jizz在线观看免费视频| 亚洲成人在线无码| 日韩人妻无码一区二区| 性做久久久久久| 久久久久久久伊人| 午夜成人小电影| 朝鲜性感AV在线| 夜夜嗨AⅤ一区二区三区| 国精产品久拍自产在线网站| 91在线亚洲| 午夜噜噜| av在线免费观看网站| 黄色视频网站免费观看| 久碰人妻人妻人妻| 亚洲成a| 无码免费在线视频| 少妇搡BBBB搡BBB搡毛片 | 四川BBB搡BBB搡多人乱| 日本免费高清视频在线观看一区 | 国产AV网| 国产免费无码视频| 亚洲av资源| 日本在线不卡一区| 老女人网站| 天天摸天天操| 天天综合网久久| 国产成人精品麻豆| 国产在线观看免费视频| 久久五月天视频| 五月丁香狠狠爱| 日本不卡在线| 日韩精品一区二区三区在线观看免费| 嫩苞又嫩又紧AV无码| 玖玖在线视频| av天堂一区| 日本在线精品视频| 丹麦电影《下午》| 美国黄色A片| 中文字幕AV无码| 男女怕怕网站| 人成免费在线视频| 欧美视频在线播放| 中文字幕一级片| www.国产| 色婷婷在线视频| a√天堂资源中文8| 亚洲无码av在线播放| 国产精品色婷婷99久久精品| 欧美日韩不卡视频|