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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

MongoDB学习笔记(三)-----集群架构

發(fā)布時(shí)間:2024/1/1 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MongoDB学习笔记(三)-----集群架构 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

MongoDB 有三種集群部署模式,分別為主從復(fù)制(Master-Slaver)、副本集(Replica Set)和分片(Sharding)模式。

  • Master-Slaver 是一種主從副本的模式,目前已經(jīng)不推薦使用。
  • Replica Set 模式取代了 Master-Slaver 模式,是一種互為主從的關(guān)系。Replica Set 將數(shù)據(jù)復(fù)制多份保存,不同服務(wù)器保存同一份數(shù)據(jù),在出現(xiàn)故障時(shí)自動(dòng)切換,實(shí)現(xiàn)故障轉(zhuǎn)移,在實(shí)際生產(chǎn)中非常實(shí)用。
  • Sharding 模式適合處理大量數(shù)據(jù),它將數(shù)據(jù)分開存儲(chǔ),不同服務(wù)器保存不同的數(shù)據(jù),所有服務(wù)器數(shù)據(jù)的總和即為整個(gè)數(shù)據(jù)集。

主從復(fù)制
主從復(fù)制是 MongoDB 中最簡單的數(shù)據(jù)庫同步備份的集群技術(shù),其基本的設(shè)置方式是建立一個(gè)主節(jié)點(diǎn)(Primary)和一個(gè)或多個(gè)從節(jié)點(diǎn)(Secondary),如下圖所示。

這種方式比單節(jié)點(diǎn)的可用性好很多,可用于備份、故障恢復(fù)、讀擴(kuò)展等。集群中的主從節(jié)點(diǎn)均運(yùn)行 MongoDB 實(shí)例,完成數(shù)據(jù)的存儲(chǔ)、查詢與修改操作。

主從復(fù)制模式的集群中只能有一個(gè)主節(jié)點(diǎn),主節(jié)點(diǎn)提供所有的增、刪、查、改服務(wù),從節(jié)點(diǎn)不提供任何服務(wù),但是可以通過設(shè)置使從節(jié)點(diǎn)提供查詢服務(wù),這樣可以減少主節(jié)點(diǎn)的壓力。

另外,每個(gè)從節(jié)點(diǎn)要知道主節(jié)點(diǎn)的地址,主節(jié)點(diǎn)記錄在其上的所有操作,從節(jié)點(diǎn)定期輪詢主節(jié)點(diǎn)獲取這些操作,然后對自己的數(shù)據(jù)副本執(zhí)行這些操作,從而保證從節(jié)點(diǎn)的數(shù)據(jù)與主節(jié)點(diǎn)一致。

在主從復(fù)制的集群中,當(dāng)主節(jié)點(diǎn)出現(xiàn)故障時(shí),只能人工介入,指定新的主節(jié)點(diǎn),從節(jié)點(diǎn)不會(huì)自動(dòng)升級(jí)為主節(jié)點(diǎn)。同時(shí),在這段時(shí)間內(nèi),該集群架構(gòu)只能處于只讀狀態(tài)。

副本集

副本集的集群架構(gòu)如下圖所示。

Mongodb(M)表示主節(jié)點(diǎn),Mongodb(S)表示備節(jié)點(diǎn),Mongodb(A)表示仲裁節(jié)點(diǎn)。主備節(jié)點(diǎn)存儲(chǔ)數(shù)據(jù),仲裁節(jié)點(diǎn)不存儲(chǔ)數(shù)據(jù)。客戶端同時(shí)連接主節(jié)點(diǎn)與備節(jié)點(diǎn),不連接仲裁節(jié)點(diǎn)。

默認(rèn)設(shè)置下,主節(jié)點(diǎn)提供所有增刪查改服務(wù),備節(jié)點(diǎn)不提供任何服務(wù)。但是可以通過設(shè)置使備節(jié)點(diǎn)提供查詢服務(wù),這樣就可以減少主節(jié)點(diǎn)的壓力,當(dāng)客戶端進(jìn)行數(shù)據(jù)查詢時(shí),請求自動(dòng)轉(zhuǎn)到備節(jié)點(diǎn)上。這個(gè)設(shè)置叫做Read Preference Modes,同時(shí)Java客戶端提供了簡單的配置方式,可以不必直接對數(shù)據(jù)庫進(jìn)行操作。

仲裁節(jié)點(diǎn)是一種特殊的節(jié)點(diǎn),它本身并不存儲(chǔ)數(shù)據(jù),主要的作用是決定哪一個(gè)備節(jié)點(diǎn)在主節(jié)點(diǎn)掛掉之后提升為主節(jié)點(diǎn),所以客戶端不需要連接此節(jié)點(diǎn)。這里雖然只有一個(gè)備節(jié)點(diǎn),但是仍然需要一個(gè)仲裁節(jié)點(diǎn)來提升備節(jié)點(diǎn)級(jí)別。

相信大家看到這里是不是可以聯(lián)想到redis的一種集群模式,即哨兵模式跟這個(gè)原理很像,確實(shí)如此,仲裁節(jié)點(diǎn)就像是一個(gè)哨兵,當(dāng)監(jiān)聽到其它的某個(gè)節(jié)點(diǎn)掛了,會(huì)重新選擇某個(gè)節(jié)點(diǎn)提升為主節(jié)點(diǎn)繼續(xù)對外提供讀寫服務(wù),從而保障集群的高可用性,減少人工干預(yù);

MongoDB復(fù)制原理
mongodb的復(fù)制至少需要兩個(gè)節(jié)點(diǎn)。其中一個(gè)是主節(jié)點(diǎn),負(fù)責(zé)處理客戶端請求,其余的都是從節(jié)點(diǎn),負(fù)責(zé)復(fù)制主節(jié)點(diǎn)上的數(shù)據(jù)。
mongodb各個(gè)節(jié)點(diǎn)常見的搭配方式為:一主一從, 一主多從。
主節(jié)點(diǎn)記錄其上的所有操作oplog,從節(jié)點(diǎn)定期輪詢主節(jié)點(diǎn)獲取這些操作,然后對自己的數(shù)據(jù)副本執(zhí)行這些操作。

副本集的特征

  • N個(gè)節(jié)點(diǎn)的集群
  • 任何節(jié)點(diǎn)可作為主節(jié)點(diǎn)
  • 所有寫操作都在主節(jié)點(diǎn)上
  • 自動(dòng)故障遷移
  • 自動(dòng)恢復(fù)

此集群擁有一個(gè)主節(jié)點(diǎn)和多個(gè)從節(jié)點(diǎn),這一點(diǎn)與主從復(fù)制模式類似,且主從節(jié)點(diǎn)所負(fù)責(zé)的工作也類似,但是副本集與主從復(fù)制的區(qū)別在于:當(dāng)集群中主節(jié)點(diǎn)發(fā)生故障時(shí),副本集可以自動(dòng)投票,選舉出新的主節(jié)點(diǎn),并引導(dǎo)其余的從節(jié)點(diǎn)連接新的主節(jié)點(diǎn),而且這個(gè)過程對應(yīng)用是透明的。

可以說,MongoDB 的副本集是自帶故障轉(zhuǎn)移功能的主從復(fù)制。

MongoDB 副本集使用的是 N 個(gè) mongod 節(jié)點(diǎn)構(gòu)建的具備自動(dòng)容錯(cuò)功能、自動(dòng)恢復(fù)功能的高可用方案。在副本集中,任何節(jié)點(diǎn)都可作為主節(jié)點(diǎn),但為了維持?jǐn)?shù)據(jù)一致性,只能有一個(gè)主節(jié)點(diǎn)。

主節(jié)點(diǎn)負(fù)責(zé)數(shù)據(jù)的寫入和更新,并在更新數(shù)據(jù)的同時(shí),將操作信息寫入名為 oplog 的日志文件當(dāng)中。主節(jié)點(diǎn)還負(fù)責(zé)指定其他節(jié)點(diǎn)為從節(jié)點(diǎn),并設(shè)置從節(jié)點(diǎn)數(shù)據(jù)的可讀性,從而讓從節(jié)點(diǎn)來分擔(dān)集群讀取數(shù)據(jù)的壓力。

另外,從節(jié)點(diǎn)會(huì)定時(shí)輪詢讀取 oplog 日志,根據(jù)日志內(nèi)容同步更新自身的數(shù)據(jù),保持與主節(jié)點(diǎn)一致。

在一些場景中,用戶還可以使用副本集來擴(kuò)展讀性能,客戶端有能力發(fā)送讀寫操作給不同的服務(wù)器,也可以在不同的數(shù)據(jù)中心獲取不同的副本來擴(kuò)展分布式應(yīng)用的能力。

在副本集中還有一個(gè)額外的仲裁節(jié)點(diǎn)(不需要使用專用的硬件設(shè)備),負(fù)責(zé)在主節(jié)點(diǎn)發(fā)生故障時(shí),參與選舉新節(jié)點(diǎn)作為主節(jié)點(diǎn)。

副本集中的各節(jié)點(diǎn)會(huì)通過心跳信息來檢測各自的健康狀況,當(dāng)主節(jié)點(diǎn)出現(xiàn)故障時(shí),多個(gè)從節(jié)點(diǎn)會(huì)觸發(fā)一次新的選舉操作,并選舉其中一個(gè)作為新的主節(jié)點(diǎn)。為了保證選舉票數(shù)不同,副本集的節(jié)點(diǎn)數(shù)保持為奇數(shù)。

下面我們在三臺(tái)虛擬機(jī)上模式搭建一下mongodb的這種副本集模式的集群;

1、環(huán)境準(zhǔn)備,我這里提前準(zhǔn)備好了三臺(tái)虛擬機(jī),

192.168.111.134
192.168.9.147
192.168.111.133

2、上傳mongodb的安裝包
我這里放在 /usr/local 目錄下, tar -zxvf mongodb-linux-x86_64-4.0.9.tgz
3、為使用方便,將解壓后的文件命名為mongodb
mv mongodb-linux-x86_64-4.0.9 mongodb

4、創(chuàng)建相關(guān)目錄

mkdir data mkdir logs mkdir conf cd logs touch master.log cd conf touch mongodb.conf

5、創(chuàng)建配置文件
進(jìn)入conf目錄,創(chuàng)建mongodb.conf,并編輯

6、以上是在主節(jié)點(diǎn)做的操作,在另外的兩個(gè)節(jié)點(diǎn)上做同樣的配置即可,只需要修改端口號(hào)和相應(yīng)的目錄文件地址,下面帖上配置文件

#master配置 dbpath=/usr/local/mongodb/data logpath=/usr/local/mongodb/logs/master.log logappend=true bind_ip=192.168.111.133 port=27017 fork=true noprealloc=true replSet=test#slave配置 dbpath=/usr/local/mongodb/data logpath=/usr/local/mongodb/logs/slave.log logappend=true bind_ip=192.168.9.147 port=27017 fork=true noprealloc=true replSet=test#仲裁節(jié)點(diǎn)配置 dbpath=/usr/local/mongodb/data logpath=/usr/local/mongodb/logs/arbite.log logappend=true bind_ip=192.168.111.134 port=27018 fork=true noprealloc=true replSet=test

7、做完了上述的配置基本上就可以了,下面我們就來啟動(dòng)集群

進(jìn)入三個(gè)節(jié)點(diǎn)的bin目錄下,執(zhí)行,看到如下信息就表示啟動(dòng)成功了,三個(gè)節(jié)點(diǎn)做同樣的啟動(dòng)操作,

/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/mongodb.conf


8.配置主、備、仲裁節(jié)點(diǎn)

#連接到節(jié)點(diǎn)
./mongo 192.168.111.133:27017

忽略啟動(dòng)的警告信息,沒有報(bào)錯(cuò)就是連接上了客戶端,

初始化并建立三個(gè)節(jié)點(diǎn)之間的信息,使用如下命令,大家修改為自己機(jī)器的IP
cfg={ _id:“test”, members:[ {_id:0,host:‘192.168.111.133:27017’,priority:2}, {_id:1,host:‘192.168.9.147:27017’,priority:1}, {_id:2,host:‘192.168.111.134:27018’,arbiterOnly:true}] };


可以看到,各個(gè)節(jié)點(diǎn)的基本信息已經(jīng)展示出來了,接著執(zhí)行,
rs.initiate(cfg);


最后,執(zhí)行rs.status();查看集群的狀態(tài)

{"set" : "test","date" : ISODate("2019-06-17T01:34:05.135Z"),"myState" : 2,"term" : NumberLong(0),"syncingTo" : "","syncSourceHost" : "","syncSourceId" : -1,"heartbeatIntervalMillis" : NumberLong(2000),"optimes" : {"lastCommittedOpTime" : {"ts" : Timestamp(0, 0),"t" : NumberLong(-1)},"appliedOpTime" : {"ts" : Timestamp(1560735223, 1),"t" : NumberLong(-1)},"durableOpTime" : {"ts" : Timestamp(1560735223, 1),"t" : NumberLong(-1)}},"lastStableCheckpointTimestamp" : Timestamp(0, 0),"members" : [{"_id" : 0,"name" : "192.168.111.133:27017","health" : 1,"state" : 2,"stateStr" : "SECONDARY","uptime" : 169,"optime" : {"ts" : Timestamp(1560735223, 1),"t" : NumberLong(-1)},"optimeDate" : ISODate("2019-06-17T01:33:43Z"),"syncingTo" : "","syncSourceHost" : "","syncSourceId" : -1,"infoMessage" : "could not find member to sync from","configVersion" : 1,"self" : true,"lastHeartbeatMessage" : ""},{"_id" : 1,"name" : "192.168.9.147:27017","health" : 1,"state" : 0,"stateStr" : "STARTUP","uptime" : 21,"optime" : {"ts" : Timestamp(0, 0),"t" : NumberLong(-1)},"optimeDurable" : {"ts" : Timestamp(0, 0),"t" : NumberLong(-1)},"optimeDate" : ISODate("1970-01-01T00:00:00Z"),"optimeDurableDate" : ISODate("1970-01-01T00:00:00Z"),"lastHeartbeat" : ISODate("2019-06-17T01:34:04.957Z"),"lastHeartbeatRecv" : ISODate("1970-01-01T00:00:00Z"),"pingMs" : NumberLong(5),"lastHeartbeatMessage" : "","syncingTo" : "","syncSourceHost" : "","syncSourceId" : -1,"infoMessage" : "","configVersion" : -2},{"_id" : 2,"name" : "192.168.111.134:27018","health" : 1,"state" : 0,"stateStr" : "STARTUP","uptime" : 21,"lastHeartbeat" : ISODate("2019-06-17T01:34:04.794Z"),"lastHeartbeatRecv" : ISODate("1970-01-01T00:00:00Z"),"pingMs" : NumberLong(4),"lastHeartbeatMessage" : "","syncingTo" : "","syncSourceHost" : "","syncSourceId" : -1,"infoMessage" : "","configVersion" : -2}],"ok" : 1,"operationTime" : Timestamp(1560735223, 1),"$clusterTime" : {"clusterTime" : Timestamp(1560735223, 1),"signature" : {"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),"keyId" : NumberLong(0)}} }

各個(gè)節(jié)點(diǎn)的狀態(tài)比如節(jié)點(diǎn)的健康狀況,是否主節(jié)點(diǎn)等都可以清楚的看出來

分片

相關(guān)概念
在搭建集群之前,需要首先了解幾個(gè)概念:路由,分片、副本集、配置服務(wù)器等。

  • mongos,數(shù)據(jù)庫集群請求的入口,所有的請求都通過mongos進(jìn)行協(xié)調(diào),不需要在應(yīng)用程序添加一個(gè)路由選擇器,mongos自己就是一個(gè)請求分發(fā)中心,它負(fù)責(zé)把對應(yīng)的數(shù)據(jù)請求請求轉(zhuǎn)發(fā)到對應(yīng)的shard服務(wù)器上。在生產(chǎn)環(huán)境通常有多mongos作為請求的入口,防止其中一個(gè)掛掉所有的mongodb請求都沒有辦法操作。
  • config server,顧名思義為配置服務(wù)器,存儲(chǔ)所有數(shù)據(jù)庫元信息(路由、分片)的配置。mongos本身沒有物理存儲(chǔ)分片服務(wù)器和數(shù)據(jù)路由信息,只是緩存在內(nèi)存里,配置服務(wù)器則實(shí)際存儲(chǔ)這些數(shù)據(jù)。mongos第一次啟動(dòng)或者關(guān)掉重啟就會(huì)從 config server 加載配置信息,以后如果配置服務(wù)器信息變化會(huì)通知到所有的 mongos 更新自己的狀態(tài),這樣 mongos 就能繼續(xù)準(zhǔn)確路由。在生產(chǎn)環(huán)境通常有多個(gè) config server 配置服務(wù)器,因?yàn)樗鎯?chǔ)了分片路由的元數(shù)據(jù),防止數(shù)據(jù)丟失!
  • shard,分片(sharding)是指將數(shù)據(jù)庫拆分,將其分散在不同的機(jī)器上的過程。將數(shù)據(jù)分散到不同的機(jī)器上,不需要功能強(qiáng)大的服務(wù)器就可以存儲(chǔ)更多的數(shù)據(jù)和處理更大的負(fù)載。基本思想就是將集合切成小塊,這些塊分散到若干片里,每個(gè)片只負(fù)責(zé)總數(shù)據(jù)的一部分,最后通過一個(gè)均衡器來對各個(gè)分片進(jìn)行均衡(數(shù)據(jù)遷移)。
  • replica set,中文翻譯副本集,其實(shí)就是shard的備份,防止shard掛掉之后數(shù)據(jù)丟失。復(fù)制提供了數(shù)據(jù)的冗余備份,并在多個(gè)服務(wù)器上存儲(chǔ)數(shù)據(jù)副本,提高了數(shù)據(jù)的可用性, 并可以保證數(shù)據(jù)的安全性。
  • 仲裁者(Arbiter),是復(fù)制集中的一個(gè)MongoDB實(shí)例,它并不保存數(shù)據(jù)。仲裁節(jié)點(diǎn)使用最小的資源并且不要求硬件設(shè)備,不能將Arbiter部署在同一個(gè)數(shù)據(jù)集節(jié)點(diǎn)中,可以部署在其他應(yīng)用服務(wù)器或者監(jiān)視服務(wù)器中,也可部署在單獨(dú)的虛擬機(jī)中。為了確保復(fù)制集中有奇數(shù)的投票成員(包括primary),需要添加仲裁節(jié)點(diǎn)做為投票,否則primary不能運(yùn)行時(shí)不會(huì)自動(dòng)切換primary。

簡單了解之后,我們可以這樣總結(jié)一下,應(yīng)用請求mongos來操作mongodb的增刪改查,配置服務(wù)器存儲(chǔ)數(shù)據(jù)庫元信息,并且和mongos做同步,數(shù)據(jù)最終存入在shard(分片)上,為了防止數(shù)據(jù)丟失同步在副本集中存儲(chǔ)了一份,仲裁在數(shù)據(jù)存儲(chǔ)到分片的時(shí)候決定存儲(chǔ)到哪個(gè)節(jié)點(diǎn)。

分片架構(gòu)說明

更詳細(xì)點(diǎn)可以看作為:

我上面建立的這個(gè)集群一共使用了8臺(tái)物理服務(wù)器。最左邊三臺(tái)物理服務(wù)器中,每臺(tái)物理服務(wù)器里放一個(gè)config(mongod)進(jìn)程,和一個(gè)mongos進(jìn)程。三個(gè)config節(jié)點(diǎn)組成config副本集,這樣任意一個(gè)config掛掉都不會(huì)對整體造成影響。三個(gè)mongos采用相同的配置,在連接mongoDB集群的時(shí)候,將URL寫成

mongodb://username:password@192.168.1.1:2000,192.168.1.2:2000,192.168.1.3:2000/DatabaseName

這種模式,由客戶端自動(dòng)的在3個(gè)mongos中選擇一個(gè)連接,并在一個(gè)mongos出故障時(shí)由客戶端自動(dòng)遷移到另一個(gè)mongos上去。這樣就不怕某個(gè)mongos突然掛掉。

下面的操作使用的MongoDB版本為4.0以上

然后是上面三臺(tái)物理服務(wù)器每個(gè)里面都運(yùn)行著一個(gè)mongod進(jìn)程,用來存放真實(shí)的業(yè)務(wù)數(shù)據(jù),這三個(gè)服務(wù)器的mongod均設(shè)置為Master,并且分屬不同的分片,加載不同內(nèi)容的配置文件。

然后我們就有了3個(gè)分片了,然后我們再為每個(gè)分片設(shè)置副本集,組成一個(gè)3x3的集群,即3個(gè)分片,每個(gè)分片里有3個(gè)數(shù)據(jù)副本,防止數(shù)據(jù)丟失。

于是在同一個(gè)機(jī)房或者同城機(jī)房內(nèi)在找一臺(tái)算力和存儲(chǔ)都比Master大一些的兩臺(tái)物理機(jī),每臺(tái)物理機(jī)里執(zhí)行三個(gè)mongod進(jìn)程,分別數(shù)據(jù)分片1,分片2和分片3的Slave。這樣三分片三復(fù)制集的集群就搭建完成了。下面是詳細(xì)步驟

搭建Config節(jié)點(diǎn)復(fù)制集

config節(jié)點(diǎn)有一個(gè)就夠用了,但是為了實(shí)現(xiàn)高可用,我這里使用3臺(tái)物理機(jī)跑三個(gè)config節(jié)點(diǎn),并組成復(fù)制集。

config節(jié)點(diǎn)的配置文件如下

sharding:clusterRole: configsvr replication:replSetName: confset net:port: 7017bindIp: 0.0.0.0systemLog:destination: filelogAppend: truepath: /mnt/mongo/conf/mongod.logstorage:dbPath: /mnt/mongo/confjournal:enabled: trueprocessManagement:fork: true # fork and run in backgroundpidFilePath: /mnt/mongo/conf/mongod.pid # location of pidfiletimeZoneInfo: /usr/share/zoneinfo

跑mongod進(jìn)程很方便,只需編寫好一個(gè)簡短的配置文件就可以了,這也是mongodb比mysql方便的地方,即配置文件結(jié)構(gòu)非常簡單,不需要考慮太多。

其中要注意,clusterRole必須填configsvr,這一點(diǎn)與普通的mongod數(shù)據(jù)庫進(jìn)程不一樣。因?yàn)閏onfig節(jié)點(diǎn)雖然也可以當(dāng)做普通的mongo數(shù)據(jù)來使用,但是其最主要的作用不是存儲(chǔ)業(yè)務(wù)數(shù)據(jù),而是與mongos進(jìn)程配合,存儲(chǔ)每個(gè)分片節(jié)點(diǎn)的信息,數(shù)據(jù)分片規(guī)則,和分片后每個(gè)chunk的存儲(chǔ)信息。所以不應(yīng)該在config節(jié)點(diǎn)中存儲(chǔ)任何業(yè)務(wù)數(shù)據(jù)。

replSetName可以自己隨便起,但在三個(gè)config節(jié)點(diǎn)中應(yīng)該保持相同,這樣才能把三個(gè)config節(jié)點(diǎn)添加到同一個(gè)復(fù)制集中去

port就是開放的端口,注意和其他的進(jìn)程不沖突就可以了,我這里三臺(tái)config節(jié)點(diǎn)的配置文件都是一樣的,用的一樣的數(shù)據(jù)庫端口。

systemLog就是配置mongo運(yùn)行時(shí)產(chǎn)生log日志的存放位置,storage里的dbPath就是存放數(shù)據(jù)庫數(shù)據(jù)文件的位置,如果目錄不存在需要手工創(chuàng)建。

在這里要提醒一下,默認(rèn)搭建出來的mongo數(shù)據(jù)庫集群是沒有管理員密碼的,連接也不需要提供用戶名和密碼,非常不安全。所以我們這里先使用mongodb集群密碼驗(yàn)證的方式生成相關(guān)的密鑰。

生成密鑰使用openssl命令即可,如果數(shù)據(jù)庫服務(wù)器本身沒有openssl命令,可以在其他設(shè)備上生成后拷貝過來

openssl rand -base64 741 > /etc/mongo/mongodb-keyfile

生成的密鑰大概是下面這個(gè)樣子,懶得生成的同學(xué)可以直接把我下面這個(gè)拷貝過去使用

bJd/FkxJaYfZPL5bbP7eRI2sh8EydhuZa8jXUtzlT+uYz0oKHKhnMBECsX+CZfRG xebslFdXrWdAuhwVvSoFDGtp9o7O9kwJbna0txKxhFfeYcDh5X81hQT7TbflY1oH JVgCFMrfejz9vR5bMa5ieumhDJ0WruvO3y1fvOVZN4/SDkWahxY88mF40GTambGw q6VeIV4aEPOrqDUu7TqTzuaCGZBRd6EQoWGqQ/bsmq8Q37hag8Pdk1dFE0jyUvsA ol00lIFN+49OkTcO/t20/MUae+opcIn8sUtV7a80WyiklH9AxIRR6Xjl/Peb+vbg gsyq2XK3LFqga/WWDY16AYGBBGn53oCxjkmDH+HZ5VL2IlAoEELUIYHKpSiafUCg /fsVloVJh7niZaOsBrsd7ltK3SDeK2BNdtSGFLdRR80CzmYn+CAmcW87pxlhTopQ iqmHbkAL6AwLyDUkuqVjQCExYNT5jOv2UqHwq758m1PRZJrfikBM3m/oiF1j+R7c i8sqz2qHYKyc4C2l3bRM27IIpayJB976CK4a9TOI/qunNLLNlWGcKlJOvHSDbHEN mvFP5AekkL1rhmPLdk8GQdWTPXe52qTHsH10T9okF59r0qnqx3AXsuOTw/AR1r5d qq3ERE/xB/y2mrXVRmkygel6UKwA7q5UjVQt6w0JubnhKWWtb4xVUbvSgHC/M9jY MaVx6B9O4Ga2ENrAGkH/8iRXiR7BlMR9DZeE+QG1vaz35c/Gj74EbqnGrmyCnlNV T+J1ovhPg6q0L4UsPCWoaXCz2d4HOBNr6Tr3sd7L0wB3UdWINXA3kMUqOiUSLpt/ 2VbnETSdLoNWtezzT09SY4wn+N5yvHbZt+ugwB1i62FvNQLx3IIq9sJqIPvR8R3W HlhxiYTWQp9IaKxIuITOZ+eL+ybmym4jGHErfheRFnNq9ywnJt/ZiGoiPB3xWYZl 4qmi9ZRb38MMNI/8wnwVKm5lWYM4

把密鑰文件放到相關(guān)目錄后,還需要修改密鑰文件的權(quán)限,否則mongod進(jìn)程會(huì)啟動(dòng)失敗

chown mongod:mongod /etc/mongo/mongodb-keyfile chmod 600 /etc/mongo/mongodb-keyfile

然后我們在配置文件上加入下面這幾行,就可以開啟mongodb集群的密碼功能了。注意這個(gè)mongodb-keyfile要保存好,之后所有分片,復(fù)制集的mongod進(jìn)程都要使用同一個(gè)mongodb-keyfile才能建立集群。

然后我們在三個(gè)物理服務(wù)器上建立相同的目錄,主要是數(shù)據(jù)庫數(shù)據(jù)存儲(chǔ)目錄,pid文件目錄,log文件目錄,然后把密鑰文件mongodb-keyfile和mongod配置文件在三臺(tái)服務(wù)器上都拷貝一個(gè),就可以準(zhǔn)備啟動(dòng)了。

假設(shè)我們mongod的配置文件為/etc/mongo/config.conf,那么在三臺(tái)config節(jié)點(diǎn)服務(wù)器上都運(yùn)行

mongod --config /etc/mongo/config.conf

啟動(dòng)三個(gè)config節(jié)點(diǎn),然后我們使用mongo命令任意連接其中一個(gè)節(jié)點(diǎn),初始化配置三個(gè)config節(jié)點(diǎn)為一個(gè)復(fù)制集

rs.initiate({_id: "confset",configsvr: true,members: [{ _id : 0, host : "192.168.1.1:7017" },{ _id : 1, host : "192.168.1.2:7017" },{ _id : 2, host : "192.168.1.3:7017" }]} )

上面的_id就是前面配置文件中replSetName你起的名字,在三個(gè)config節(jié)點(diǎn)的配置文件中是相同的,這里rs.initiate的命令只需在一個(gè)config節(jié)點(diǎn)中執(zhí)行即可,其他兩個(gè)節(jié)點(diǎn)會(huì)自動(dòng)添加進(jìn)來,無需每個(gè)節(jié)點(diǎn)都執(zhí)行一遍。但前提是你必須在防火墻上打開你設(shè)置的監(jiān)聽端口,上文中是7017,保證三個(gè)節(jié)點(diǎn)可以互相通信

這樣,由三個(gè)mongod組成的復(fù)制集集群就建設(shè)好了,此時(shí)推薦建立root用戶,這樣在開啟了密碼之后,我們就可以方便的對config節(jié)點(diǎn)登錄和修改配置。

此時(shí)要注意添加root用戶的時(shí)機(jī),要在復(fù)制集初始化之后,密鑰配置之前配置。因?yàn)槿绻€沒有初始化集群,那么創(chuàng)建用戶命令就只對一個(gè)節(jié)點(diǎn)生效,需要?jiǎng)?chuàng)建三遍,而如果創(chuàng)建的不一致還會(huì)導(dǎo)致復(fù)制集的問題,所以要先初始化集群。初始化之后如果配置文件中帶著上面講的keyFile: /etc/mongo/mongodb-keyfile來啟動(dòng),那么啟動(dòng)之后仍然沒有權(quán)限創(chuàng)建新用戶,恰當(dāng)?shù)臅r(shí)機(jī)就是一開始不寫keyFile: /etc/mongo/mongodb-keyfile這兩行到配置文件中去,然后初始化集群,創(chuàng)建root用戶,然后把mongod全部kill掉再在配置文件中加入這兩行后重啟mongod

db.createUser({user: "root",pwd: "passwd",roles: [ { role: "root", db: "admin" } ]} )

官網(wǎng)的文檔只給了role為userAdminAnyDatabase的用戶,但是這個(gè)用戶的權(quán)限并不大,不能修改集群內(nèi)的配置,所以還是需要root role。

建立一個(gè)分片節(jié)點(diǎn)并組成副本集

有了config節(jié)點(diǎn)之后,下一步就需要建立分片節(jié)點(diǎn),而且為了保證一個(gè)分片里數(shù)據(jù)庫掛掉之后數(shù)據(jù)不丟失,還需要給每個(gè)分片建立一個(gè)復(fù)制集組成集群里的集群,這樣不僅有了多個(gè)數(shù)據(jù)副本,還可以實(shí)現(xiàn)讀寫分離。

首先我們在Shard 1 Master這臺(tái)服務(wù)器上建立第一個(gè)分片的主節(jié)點(diǎn)。同樣我們先建立數(shù)據(jù)庫數(shù)據(jù)存儲(chǔ)目錄,pid文件目錄,log文件目錄,然后把密鑰文件mongodb-keyfile拷貝到/etc/mongo/下,或者其他的什么位置,然后開始編寫mongod的配置文件

sharding:clusterRole: shardsvr replication:replSetName: shard1 net:port: 17017bindIp: 0.0.0.0systemLog:destination: filelogAppend: truepath: /mnt/mongo/shard1/mongod.logstorage:dbPath: /mnt/mongo/shard1journal:enabled: trueprocessManagement:fork: true # fork and run in backgroundpidFilePath: /mnt/mongo/shard1/mongod.pid # location of pidfiletimeZoneInfo: /usr/share/zoneinfosecurity:keyFile: /etc/mongo/mongodb-keyfile

此時(shí)clusterRole:要改成shardsvr,這樣才能和config節(jié)點(diǎn),mongos節(jié)點(diǎn)一起組成分片集群。replSetName可以隨便填一個(gè),但是對于分片一和它的幾個(gè)副本都應(yīng)該是相同的名字。分片一和分片二兩個(gè)副本集的replSetName一般為不一樣的,和config節(jié)點(diǎn)的集群也應(yīng)該不一樣。

然后我們就可以啟動(dòng)master了,一般使用mongod用戶啟動(dòng)

mongod --config /etc/mongo/shard1Master.conf

然后我們?nèi)チ硗鈨膳_(tái)放Slave節(jié)點(diǎn)的服務(wù)器,編寫slave節(jié)點(diǎn)的配置文件,而且別忘了建立數(shù)據(jù)庫數(shù)據(jù)存儲(chǔ)目錄,pid文件目錄,log文件目錄,然后把密鑰文件mongodb-keyfile拷貝到/etc/mongo/下。

sharding:clusterRole: shardsvr replication:replSetName: shard1 net:port: 17017bindIp: 0.0.0.0systemLog:destination: filelogAppend: truepath: /mnt/mongo/shard1/mongod.logstorage:dbPath: /mnt/mongo/shard1journal:enabled: truewiredTiger:engineConfig:cacheSizeGB: 4processManagement:fork: true # fork and run in backgroundpidFilePath: /mnt/mongo/shard1/mongod.pid # location of pidfiletimeZoneInfo: /usr/share/zoneinfosecurity:keyFile: /etc/mongo/mongodb-keyfile

這里要注意,repSetName要和Master節(jié)點(diǎn)填一樣的。在我的集群里,由于有兩臺(tái)服務(wù)器是存放了三個(gè)分片的slave節(jié)點(diǎn)。而在mongodb的內(nèi)存使用規(guī)則中,使用LRU方式,一個(gè)mongod進(jìn)程最多可以使用50%的物理內(nèi)存,所以三個(gè)節(jié)點(diǎn)可分配的內(nèi)存就是150%的物理內(nèi)存,這樣最后肯定會(huì)觸發(fā)OOM,所以在slave節(jié)點(diǎn)的配置文件中,要加上上面的cacheSizeGB,限定最大使用的內(nèi)存數(shù)量,我這里使用的4GB,我的物理服務(wù)器大約有24GB的物理內(nèi)存。

這里順便提一下mongodb的內(nèi)存管理,從MongoDB 3.2版本開始,就開始使用WiredTiger作為默認(rèn)的存儲(chǔ)引擎,下面摘自mongodb的官方document

Starting in MongoDB 3.4, the default WiredTiger internal cache size is the larger of either:50% of (RAM - 1 GB), or 256 MB. For example, on a system with a total of 4GB of RAM the WiredTiger cache will use 1.5GB of RAM (0.5 * (4GB - 1 GB) = 1.5 GB). Conversely, a system with a total of 1.25 GB of RAM will allocate 256 MB to the WiredTiger cache because that is more than half of the total RAM minus one gigabyte (0.5 * (1.25 GB - 1GB) = 128 MB < 256 MB).

在實(shí)際應(yīng)用中,發(fā)現(xiàn)這個(gè)存儲(chǔ)引擎特別的牛逼,比如我插入10GB的數(shù)據(jù),只要數(shù)據(jù)量沒有超過上面的內(nèi)存限制,即總物理內(nèi)存-1的一半,那么數(shù)據(jù)再保存在磁盤的同時(shí),還會(huì)保存在內(nèi)存中,如果你的數(shù)據(jù)庫本身不大而物理內(nèi)存特別大的話,那此時(shí)你已經(jīng)有了一個(gè)內(nèi)存型數(shù)據(jù)庫,所有的查詢在內(nèi)存中就可以完成,這樣的掃描速度往往是磁盤的上千倍。性能還是非常恐怖的。

官網(wǎng)文檔還明確的指出,在一個(gè)服務(wù)器有多個(gè)mongod進(jìn)程或者容器中運(yùn)行時(shí),需要設(shè)定cacheSizeGB這個(gè)參數(shù),原文如下

NOTEThe storage.wiredTiger.engineConfig.cacheSizeGB limits the size of the WiredTiger internal cache. The operating system will use the available free memory for filesystem cache, which allows the compressed MongoDB data files to stay in memory. In addition, the operating system will use any free RAM to buffer file system blocks and file system cache.To accommodate the additional consumers of RAM, you may have to decrease WiredTiger internal cache size.The default WiredTiger internal cache size value assumes that there is a single mongod instance per machine. If a single machine contains multiple MongoDB instances, then you should decrease the setting to accommodate the other mongod instances.If you run mongod in a container (e.g. lxc, cgroups, Docker, etc.) that does not have access to all of the RAM available in a system, you must set storage.wiredTiger.engineConfig.cacheSizeGB to a value less than the amount of RAM available in the container. The exact amount depends on the other processes running in the container.

然后我們啟動(dòng)Master節(jié)點(diǎn)的mongod,然后啟動(dòng)兩個(gè)slave節(jié)點(diǎn)的mongod,然后使用mongo命令連接master節(jié)點(diǎn),來把這三個(gè)mongod節(jié)點(diǎn)配置成一主兩備的單一分片集群

rs.initiate({_id : "shard1",members: [{ _id : 0, host : "192.168.1.4:17017" },{ _id : 1, host : "192.168.1.5:17017" },{ _id : 2, host : "192.168.1.6:17017" }]} )

上面的是最簡單的配置方式,mongodb自己會(huì)決定哪個(gè)節(jié)點(diǎn)是master,哪些是salve,priority默認(rèn)為0,priority越大越有可能成為master,但是你也可用通過傳參數(shù)來手工指定priority,并且在節(jié)點(diǎn)數(shù)多于2的時(shí)候可以選擇一個(gè)節(jié)點(diǎn)不存儲(chǔ)數(shù)據(jù)只做仲裁。也就是三副本模式可以改成兩副本+仲裁模式,如下

rs.initiate({_id : "shard1",members: [{ _id : 0, host : "192.168.1.4:17017" ,priority : 2 },{ _id : 1, host : "192.168.1.5:17017" ,priority : 1 },{ _id : 2, host : "192.168.1.6:17017" ,arbiterOnly :true }]} )

然后,為了能在集群之后還能登陸進(jìn)節(jié)點(diǎn)修改數(shù)據(jù)庫配置,我們要添加一個(gè)root用戶,注意添加用戶的時(shí)機(jī)應(yīng)該是集群初始化之后,keyFile: /etc/mongo/mongodb-keyfile寫在配置文件之前。等創(chuàng)建完root之后再把keyFile: /etc/mongo/mongodb-keyfile寫入進(jìn)配置文件重啟。

db.createUser({user: "root",pwd: "root",roles: [ { role: "root", db: "admin" } ]} )

創(chuàng)建第二個(gè)分片的集群和第三個(gè)分片的集群也大同小異,下面光把配置文件貼出來

shard 2 master 配置文件:

sharding:clusterRole: shardsvr replication:replSetName: shard2 net:port: 27017bindIp: 0.0.0.0systemLog:destination: filelogAppend: truepath: /mnt/mongo/shard2/mongod.logstorage:dbPath: /mnt/mongo/shard2journal:enabled: trueprocessManagement:fork: true # fork and run in backgroundpidFilePath: /mnt/mongo/shard2/mongod.pid # location of pidfiletimeZoneInfo: /usr/share/zoneinfosecurity:keyFile: /etc/mongo/mongodb-keyfile

shard 2 兩個(gè)slave節(jié)點(diǎn)配置文件

sharding:clusterRole: shardsvr replication:replSetName: shard2 net:port: 27017bindIp: 0.0.0.0systemLog:destination: filelogAppend: truepath: /mnt/mongo/shard2/mongod.logstorage:dbPath: /mnt/mongo/shard2journal:enabled: truewiredTiger:engineConfig:cacheSizeGB: 4processManagement:fork: true # fork and run in backgroundpidFilePath: /mnt/mongo/shard2/mongod.pid # location of pidfiletimeZoneInfo: /usr/share/zoneinfosecurity:keyFile: /etc/mongo/mongodb-keyfile

初始化shard2 復(fù)制集的命令

rs.initiate({_id : "shard2",members: [{ _id : 0, host : "192.168.1.7:27017" },{ _id : 1, host : "192.168.1.5:27017" },{ _id : 2, host : "192.168.1.6:27017" }]} )

shard3 master 配置文件:

sharding:clusterRole: shardsvr replication:replSetName: shard3 net:port: 37017bindIp: 0.0.0.0systemLog:destination: filelogAppend: truepath: /mnt/mongo/shard3/mongod.logstorage:dbPath: /mnt/mongo/shard3journal:enabled: trueprocessManagement:fork: true # fork and run in backgroundpidFilePath: /mnt/mongo/shard3/mongod.pid # location of pidfiletimeZoneInfo: /usr/share/zoneinfosecurity:keyFile: /etc/mongo/mongodb-keyfile

shard3 兩個(gè)slave節(jié)點(diǎn)配置文件

sharding:clusterRole: shardsvr replication:replSetName: shard3 net:port: 37017bindIp: 0.0.0.0systemLog:destination: filelogAppend: truepath: /mnt/mongo/shard3/mongod.logstorage:dbPath: /mnt/mongo/shard3journal:enabled: truewiredTiger:engineConfig:cacheSizeGB: 4processManagement:fork: true # fork and run in backgroundpidFilePath: /mnt/mongo/shard3/mongod.pid # location of pidfiletimeZoneInfo: /usr/share/zoneinfosecurity:keyFile: /etc/mongo/mongodb-keyfile

初始化分片3復(fù)制集的命令

rs.initiate({_id : "shard3",members: [{ _id : 0, host : "192.168.1.8:37017" },{ _id : 1, host : "192.168.1.5:37017" },{ _id : 2, host : "192.168.1.6:37017" }]} )

注意三個(gè)分片mongod一般采用不同的接口這樣不容易出錯(cuò)。

然后分別在shard2 和shard3創(chuàng)建root用戶,一遍以后登錄調(diào)試。

現(xiàn)在3個(gè)分片,9個(gè)配置文件,9個(gè)mongod進(jìn)程已經(jīng)都啟動(dòng)起來了,現(xiàn)在可以開始把這3個(gè)分片+config節(jié)點(diǎn)集群配置成一個(gè)大集群了。

首先我們編寫mongos的配置文件,這個(gè)配置比起mysql的路由網(wǎng)關(guān)配置簡單太多了,因?yàn)閙ongodb的mongos配置基本全是啟動(dòng)之后在里面配置,不用提前寫進(jìn)配置文件,這一點(diǎn)比mycat要方便很多,修改參數(shù)無需重啟mongos了。

sharding:configDB: confset/192.168.1.1:7017,192.168.1.2:7017,192.168.1.3:7017 net:port: 2000bindIp: 0.0.0.0systemLog:destination: filelogAppend: truepath: /mnt/mongo/mongos/mongod.logprocessManagement:fork: true # fork and run in backgroundpidFilePath: /mnt/mongo/mongos/mongod.pid # location of pidfiletimeZoneInfo: /usr/share/zoneinfosecurity:keyFile: /etc/mongo/mongodb-keyfile

同樣的,我們需要建立日志目錄,需要keyfile密鑰文件,但是無需建立數(shù)據(jù)存儲(chǔ)目錄了,因?yàn)閙ongos不會(huì)存儲(chǔ)任何數(shù)據(jù),只做路由轉(zhuǎn)發(fā),而片鍵和chunk存儲(chǔ)的位置等信息都記錄在config節(jié)點(diǎn)上。

在配置文件中需要指明config集群中所有節(jié)點(diǎn)的IP和端口,并且保證網(wǎng)絡(luò)暢通。然后使用mongos命令啟動(dòng)

mongos --config /etc/mongo/mongos.conf

啟動(dòng)一個(gè)或者多個(gè)mongos之后,使用mongo命令連接任何一個(gè)mongos,并且建立好root用戶。注意此處可以先不加keyfile把整個(gè)集群創(chuàng)建完成,root用戶建完,然后再每個(gè)節(jié)點(diǎn)修改配置文件加入keyfile,再把整個(gè)集群的所有節(jié)點(diǎn)重啟一遍。

db.createUser({user: "root",pwd: "root",roles: [ { role: "root", db: "admin" } ]} )

然后使用root用戶登錄,把三個(gè)分片都添加進(jìn)去,每個(gè)分片添加里面的一個(gè)節(jié)點(diǎn)即可,master和slave都行,因?yàn)閺?fù)制集里任何一個(gè)節(jié)點(diǎn)都是可以的。

sh.addShard( "shard1/192.168.1.4:17017") sh.addShard( "shard2/192.168.1.7:27017") sh.addShard( "shard3/192.168.1.8:37017")

至此,我們的3x3集群,既包含復(fù)制集又包含分片的集群就搭建完成了,下一步就是選擇片鍵,然后對collection進(jìn)行切分,這又是一個(gè)很大的話題。

使用如下bash命令即可接入mongos進(jìn)行配置

mongo --port 2000 -u root -p password --authenticationDatabase admin

建立好集群之后,使用root用戶登錄,然后就可以使用

rs.status()

命令來來查看集群中有哪些分片和數(shù)據(jù)庫了。

注意mongos只需配置一遍,另外兩個(gè)mongos只需按照配置文件啟動(dòng)起來即可,因?yàn)閙ongos會(huì)調(diào)取config節(jié)點(diǎn)提供的信息。

客戶端連接數(shù)據(jù)庫的時(shí)候,可以選擇任意一個(gè)mongos連接,或者只選擇一個(gè),之用URL這種方式連接。URL方式連接的好處就是對于多種語言的驅(qū)動(dòng)程序都能良好的支持,通用性比較高,因?yàn)橛玫絤ongo的場合很多,nodejs,python和JAVA都會(huì)經(jīng)常調(diào)用,如果每種語言寫一套連接方式那就太麻煩了。

下面是我常用的一種URL

mongodb://username:password@192.168.1.1:2000,192.168.1.2:2000,192.168.1.3:2000/數(shù)據(jù)庫名?authSource=admin&readPreference=secondary&maxStalenessSeconds=120&connectTimeoutMS=300000

同時(shí)寫明了用戶名密碼,三個(gè)mongos地址,數(shù)據(jù)庫名,用戶驗(yàn)證庫,讀寫分離,超時(shí)時(shí)間等。在python,java,node均有很好的支持。

總結(jié)

以上是生活随笔為你收集整理的MongoDB学习笔记(三)-----集群架构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

欧美激情视频在线免费观看 | 激情av五月婷婷 | 日日夜夜天天干 | 免费一级片久久 | 国内精品久久久久久久久久久久 | 97超视频 | 亚洲va在线va天堂va偷拍 | 中文字幕在线观看av | 久要激情网 | 国产色久 | 日韩免费视频播放 | 成x99人av在线www | 成人在线一区二区 | 久久成人一区 | 久久免费视频网 | 久产久精国产品 | av色网站 | 成人中文字幕av | 999国产在线 | 精品福利av | 亚洲一区免费在线 | 欧美淫视频 | 日韩理论电影在线观看 | 91在线精品播放 | 久久久久久视频 | 日韩毛片久久久 | 97视频在线免费观看 | 国产免费视频在线 | 日韩资源在线 | 在线免费观看麻豆视频 | 91精品国产一区二区在线观看 | 日韩欧美在线综合网 | 91福利在线导航 | 青青河边草免费观看完整版高清 | 欧美俄罗斯性视频 | 91成人精品国产刺激国语对白 | 久草视频看看 | 一级免费av| 高清av免费看 | 免费看高清毛片 | 久久精品国产免费看久久精品 | 亚洲精品在线免费观看视频 | 成人av免费在线看 | 狠狠干在线 | 日日操日日 | sesese图片| 69久久久| 欧美日韩精品在线 | 麻豆国产精品va在线观看不卡 | 久久国产免费看 | 日日夜夜精品网站 | 夜色在线资源 | 在线观看视频一区二区三区 | 热久久免费视频 | 久草在线视频国产 | 精品国内| av电影免费在线看 | 夜色成人网 | 欧美日韩性生活 | 免费看片亚洲 | 精品国产精品一区二区夜夜嗨 | 一级性视频 | 国产区精品区 | 久久久久99精品成人片三人毛片 | 中文字幕在线一区观看 | 日韩欧美视频免费在线观看 | 日韩精品视频一二三 | 亚洲国产成人在线观看 | 国产成人99久久亚洲综合精品 | 午夜精品福利一区二区三区蜜桃 | www.亚洲黄 | 天天色图| 日韩在线免费不卡 | 亚洲综合精品在线 | 日韩精品不卡在线观看 | 久久在线免费观看 | 国产日产在线观看 | 亚洲国产高清在线观看视频 | 国产香蕉久久精品综合网 | 免费h精品视频在线播放 | 欧美在线观看禁18 | 久久视频在线免费观看 | 毛片.com| 日韩精品一区二区三区水蜜桃 | 91视频中文字幕 | 国产精品资源在线 | 欧美一区二区日韩一区二区 | 超碰99在线 | 国产艹b视频 | 毛片黄色一级 | 99精品一区二区 | 东方av在线免费观看 | 伊人婷婷网| 在线精品观看国产 | 特级毛片网| 亚洲精品五月天 | 久久九精品 | 亚洲国产大片 | 日韩丝袜 | 日韩中文字幕在线观看 | 久久免费国产电影 | 亚洲午夜激情网 | 成人免费视频播放 | 国产视频1区2区3区 久久夜视频 | 午夜美女视频 | 成年人免费在线观看网站 | 在线 国产 日韩 | 天天激情| 欧美一区二区在线免费观看 | 日韩专区在线观看 | 国产91精品在线观看 | 六月丁香在线观看 | 久久精品xxx | 久久久蜜桃 | 中文字幕在线网址 | 欧美日韩二区在线 | 国产专区精品 | 久久9999久久免费精品国产 | 国产一级免费电影 | 日韩精品免费专区 | 四虎免费在线观看视频 | 国产精品一区二 | 在线亚洲成人 | 国产欧美在线一区 | 亚洲男男gaygayxxxgv | 伊人中文网 | 免费观看久久 | 九色视频自拍 | 最新国产福利 | 婷婷久月 | 免费a现在观看 | 国产精品久久久久久久久费观看 | 久久av免费观看 | 黄色av影视 | 亚洲欧美日韩国产精品一区午夜 | 国产精品18videosex性欧美 | 国产精品岛国久久久久久久久红粉 | 免费无遮挡动漫网站 | 在线a人v观看视频 | 久久久久久久久久网站 | 久久福利国产 | 免费a级大片 | 欧美激情视频一区 | 久久久精品一区二区 | 97夜夜澡人人爽人人免费 | 久久久久亚洲精品成人网小说 | 久久久久伊人 | 日本久久电影网 | 91精品国产99久久久久久久 | 婷婷六月网 | 三日本三级少妇三级99 | 99久久精品国产一区二区三区 | 精品国产一区二区三区在线 | 波多野结衣一区 | 婷婷久久网站 | 精壮的侍卫呻吟h | 国产免费不卡 | www.色五月| 国产一线二线三线在线观看 | 日韩成人av在线 | 亚州人成在线播放 | 91桃色在线播放 | 中文字幕精品一区 | 国产精品热视频 | 久久草av| 91麻豆高清视频 | 中文字幕一二三区 | 久久国产精品成人免费浪潮 | 香蕉视频在线免费看 | 日韩激情影院 | 成人欧美一区二区三区在线观看 | 热久久影视 | 在线免费看黄色 | 欧美91精品国产自产 | 国产一级片免费播放 | 国产麻豆精品久久 | 国产精品久久视频 | 国产一级黄色电影 | 欧美在线观看视频免费 | 四虎精品成人免费网站 | 成人一区二区在线观看 | 一区二区三区视频网站 | 精品国内自产拍在线观看视频 | 五月综合网站 | 国产亚洲精品久久久久久大师 | 91豆花在线观看 | 久久中文网 | 91九色老 | 韩国av永久免费 | 欧美一级片免费播放 | 免费韩国av| 国产一级黄色av | 色婷婷视频网 | 天天曰天天 | 成人小视频免费在线观看 | 天天色天天操天天爽 | 国产小视频91 | 婷婷六月天丁香 | 天天艹天天操 | 国产v欧美 | 婷婷在线精品视频 | 免费视频一二三区 | 精品久久久久久综合 | 99中文字幕在线观看 | 欧美日韩中文国产 | 日韩免费中文字幕 | 中文字幕一区二区在线观看 | 国内精品视频在线播放 | 国产精品欧美精品 | 国产精品理论视频 | 在线精品一区二区 | 日韩三级一区 | 国产一二三区在线观看 | 天天干天天操天天 | 色诱亚洲精品久久久久久 | 国产精品无av码在线观看 | 亚洲成年人在线播放 | 国产精品欧美久久久久天天影视 | 欧美国产日韩久久 | 日本在线中文在线 | 五月婷婷丁香色 | 很污的网站| 极品久久久久久久 | 久久精品韩国 | 91污在线观看| 亚洲色图激情文学 | 日韩a欧美 | 免费高清影视 | 久久五月婷婷丁香社区 | 久久一区二区三区国产精品 | 美国人与动物xxxx | 久久人人爽人人爽人人片av软件 | 九九久久国产 | 最近中文字幕免费大全 | 91精品电影 | 亚洲做受高潮欧美裸体 | 少妇视频一区 | 国产午夜视频在线观看 | 欧美日韩后 | 97夜夜澡人人爽人人免费 | 色午夜影院 | 992tv成人免费看片 | 美女网站视频一区 | 国产成人性色生活片 | 国产高清在线一区 | 成人国产精品久久久久久亚洲 | 国产成人一区三区 | 欧美激情精品久久久久 | 国产做a爱一级久久 | 日韩影视在线观看 | 国产精品一区二区果冻传媒 | 成人夜晚看av | 精品国产免费人成在线观看 | 国产精品精品国产色婷婷 | 国精产品999国精产品视频 | 国产一区二区三区视频在线 | 亚洲第二色 | 激情婷婷六月 | 午夜在线资源 | 午夜12点| 国产成人精品在线观看 | 久久久午夜电影 | 亚洲aⅴ在线| 毛片美女网站 | 亚洲va欧美va国产va黑人 | 中文资源在线官网 | 婷婷免费在线视频 | 久精品在线观看 | 久久久五月婷婷 | www.狠狠插.com | 色夜视频 | 伊人伊成久久人综合网小说 | 亚洲国产精品电影 | 亚洲精品国偷拍自产在线观看蜜桃 | 亚洲精品在线一区二区三区 | 国产精品麻 | 最新成人在线 | 欧美视频在线观看免费网址 | 婷婷99| 久久99国产综合精品 | 国产精品久久久久久久久免费 | 91精品第一页 | 激情视频在线高清看 | 制服丝袜一区二区 | 最近中文字幕完整视频高清1 | 欧美日韩一区二区视频在线观看 | 久久久久久久久久久网 | 久久久国产电影 | 久热色超碰 | 高清在线观看av | 国产精品18久久久久vr手机版特色 | 91高清免费在线观看 | 成年人视频免费在线播放 | 亚洲视频在线视频 | 日韩二区三区在线观看 | 免费手机黄色网址 | 一级黄色在线视频 | 日韩精品一区二区三区丰满 | 天天操综 | 日日爱av| 精品国产乱码久久久久久久 | 久久精品福利视频 | 丰满少妇在线观看资源站 | 在线影院中文字幕 | 日本爱爱免费视频 | 免费中午字幕无吗 | 极品嫩模被强到高潮呻吟91 | 亚洲国产一二三 | 国产精品高 | 成人免费一级 | 国产精品视频久久久 | 视频一区二区三区视频 | 日本性高潮视频 | 高清av中文在线字幕观看1 | 91新人在线观看 | 日韩久久久久久久久久 | 精品国产视频在线 | 伊人伊成久久人综合网站 | 婷婷五月情| 91在线看 | 精品国产一区二区三区久久久蜜臀 | 黄色a一级视频 | 成人网页在线免费观看 | 日韩欧美视频一区 | 成人av在线看 | 一区二区精品久久 | 中文字幕成人网 | 久久成年人 | 99久久这里只有精品 | 成人黄色毛片视频 | 玖玖国产精品视频 | 97超碰中文字幕 | 伊人五月天婷婷 | 久久久久综合网 | 在线观看91精品国产网站 | 少妇视频一区 | 亚洲黄色影院 | 国产极品尤物在线 | 国产精品video | 日韩夜夜爽 | 五月开心婷婷 | 亚洲精品色婷婷 | 国产不卡免费av | 菠萝菠萝在线精品视频 | 国产高清久久久 | 中文字幕成人 | 欧美日韩视频一区二区 | 天天爱天天操天天射 | 亚洲精品一区二区三区在线观看 | 国产精品美女久久久网av | 在线日韩一区 | 国产精品完整版 | 天天躁日日躁狠狠躁av麻豆 | 精品国产一区二区三区久久影院 | 亚洲一二三在线 | 国产黄色片一级 | 人人爽人人爽人人片 | 69国产盗摄一区二区三区五区 | 免费观看视频的网站 | 丝袜一区在线 | 99精品免费久久久久久久久日本 | 国产精品久久一区二区无卡 | 国产一区国产二区在线观看 | 中文字幕一区二区三区久久 | 欧美激情另类文学 | 日韩综合第一页 | 亚洲精品国产精品久久99 | 91最新在线观看 | 日韩在线观看一区二区三区 | 久久激情日本aⅴ | 九色视频自拍 | 日韩免费一级a毛片在线播放一级 | 日韩大片在线播放 | 在线免费观看视频一区二区三区 | 在线播放视频一区 | 日韩免费在线 | 精品中文字幕在线播放 | 91人人网| 天天av综合网 | 在线观看黄网站 | 国内精品99 | 久久久久久毛片 | 国产aa精品 | 国产精品久久久久久麻豆一区 | 亚洲最大免费成人网 | 日韩一区二区三区视频在线 | 久久夜夜爽| 在线免费观看国产视频 | 日韩av一区二区三区 | 免费看三级 | 99国内精品 | 久久草| 久久久久久久99精品免费观看 | 婷婷日| 精品国产欧美一区二区三区不卡 | 亚洲一区尤物 | 99999精品| 99久久激情视频 | 国内精品视频久久 | a在线免费 | 久久69精品久久久久久久电影好 | 超碰九九| 2021av在线 | 欧美激情奇米色 | 婷婷丁香在线 | 综合国产在线 | 日本高清xxxx| 亚洲精品一区二区三区高潮 | 欧美了一区在线观看 | 欧美黑吊大战白妞欧美 | 色伊人网| 九九视频网站 | 天天操天天操 | 天堂在线一区二区三区 | 91在线视频在线观看 | 国产无限资源在线观看 | 青青河边草免费观看完整版高清 | 天天干夜夜夜 | 久久夜色精品国产欧美一区麻豆 | 国产一级特黄毛片在线毛片 | 久久婷婷国产色一区二区三区 | 六月久久婷婷 | 国产精品久久毛片 | 国产99久久久国产 | 婷婷在线免费视频 | 亚洲精品综合欧美二区变态 | 色婷婷视频在线 | 亚洲天堂网在线观看视频 | 亚州精品天堂中文字幕 | 97超碰人人澡 | 欧美analxxxx | 久久国产精品区 | 啪啪肉肉污av国网站 | 免费成人在线观看 | 免费观看久久 | 9999精品| 日韩av有码在线 | 久久免费视频一区 | 一本一道波多野毛片中文在线 | 99精品视频免费看 | 久久黄色精品视频 | 免费看的黄色的网站 | 私人av| 在线免费视频一区 | 久久久久久久久亚洲精品 | 日韩av午夜在线观看 | 日韩伦理片一区二区三区 | 天天躁日日躁狠狠 | 亚洲天堂精品视频 | 国产在线欧美在线 | 国产一级大片在线观看 | 免费人成在线观看网站 | 99综合影院在线 | 国产精品久久久久久久久搜平片 | 亚洲免费a| av一区在线播放 | 精品在线观看一区二区三区 | 91在线九色 | 五月天久久婷 | 日韩在线播放欧美字幕 | 在线电影a | 中文字幕在线观看一区二区 | 又黄又爽又湿又无遮挡的在线视频 | 96香蕉视频 | 激情综合色综合久久 | 免费看的黄色的网站 | 99视频免费在线观看 | 就要干b| av在线小说 | 黄色精品网站 | 久久a国产 | 久久高清片 | 成人精品视频 | 亚洲视频专区在线 | 国产 视频 久久 | 99九九免费视频 | 欧美在一区| 去看片| 亚洲经典中文字幕 | 中文字幕久久精品亚洲乱码 | 久操久| 亚州精品天堂中文字幕 | 精品国产伦一区二区三区观看方式 | 日韩电影精品 | 波多野结衣视频一区二区三区 | 亚洲国产婷婷 | 这里只有精品视频在线观看 | 国产爽妇网 | 午夜精品av | 国产精美视频 | 9i看片成人免费看片 | 久久久久久久久久久影院 | 日韩mv欧美mv国产精品 | 日韩免费一区二区 | 日韩欧美国产视频 | 欧美午夜精品久久久久久浪潮 | 超碰在线日韩 | 国产精品综合久久久久久 | 亚洲精品久久久久999中文字幕 | 色爽网站| 在线亚洲高清视频 | 欧美va天堂va视频va在线 | 国产精品久久久久久久久蜜臀 | 国产精品99久久久久久人免费 | 国产一级免费在线观看 | 亚洲日本一区二区在线 | 久久综合色婷婷 | 五月婷av | 成年人电影免费在线观看 | 久久久久久久久久国产精品 | 久久99热精品 | 日韩视频中文字幕在线观看 | 色姑娘综合天天 | 碰超在线97人人 | 久久99精品国产麻豆婷婷 | 久久精品视频3 | 久久激情久久 | 国产精品一区二区三区电影 | 亚洲欧美在线观看视频 | 欧美日韩国产亚洲乱码字幕 | 亚洲免费专区 | 中文字幕中文字幕在线中文字幕三区 | 国产精品一区免费看8c0m | 免费色视频 | 国产高清在线看 | 一区二区三区在线观看免费视频 | 亚洲精品午夜国产va久久成人 | 天天操天天综合网 | 日韩一二区在线 | 操操操综合| av午夜电影 | 天天爱综合 | 成年人在线观看免费视频 | 久久久久免费精品视频 | www.国产毛片| 蜜臀av麻豆| 日韩成人高清在线 | 日本亚洲国产 | 亚洲成人国产精品 | 亚洲最新av网址 | 久久激情小视频 | 三级av免费 | 91精品91| 欧美日韩网站 | 97视频在线观看免费 | 亚洲aaa毛片 | 亚洲精品视频二区 | www.亚洲黄| 在线三级av| 久久国产热视频 | 91成人观看 | 综合在线色 | 狠狠色丁香久久婷婷综 | 国产123av| 免费在线观看av网址 | 国产日产精品一区二区三区四区的观看方式 | 亚洲日本色 | 久久r精品 | 九九久久免费视频 | 亚洲国产欧美在线人成大黄瓜 | 国产精品欧美久久久久无广告 | 亚洲第一av在线播放 | 国内精品久久久久久久久久 | 狠狠狠狠狠狠干 | 在线观看免费91 | www.五月婷婷 | 国产精品手机在线播放 | 国产不卡高清 | 成人黄色在线电影 | 波多野结衣在线观看一区二区三区 | 一二区电影| 丁香激情网 | 亚洲精品一区二区18漫画 | 国产精品欧美一区二区 | 色网免费观看 | 中文字幕亚洲欧美日韩 | 99久久99久久精品免费 | 色综合久久久久久久久五月 | 国产永久免费高清在线观看视频 | 在线欧美最极品的av | 中文字幕成人网 | 一级黄色片在线观看 | 色一级片 | 久久亚洲二区 | 伊人手机在线 | 久久久99精品免费观看乱色 | 欧美一级激情 | 精品麻豆| 精品毛片在线 | 色综合久久88色综合天天 | 国产黄a三级三级三级三级三级 | 91九色国产在线 | 欧美日性视频 | 欧美一级特黄高清视频 | 久久精品系列 | 免费黄在线看 | 五月婷婷导航 | 成人在线观看网址 | 九九国产视频 | 国产女做a爱免费视频 | 欧美一区二区三区在线 | 国产成人精品一区二区三区在线观看 | 96av麻豆蜜桃一区二区 | 五月天激情视频在线观看 | 国产福利中文字幕 | 亚洲精品视频免费看 | 最近中文字幕免费av | 精品久久久久久久久久久久久久久久 | av片中文字幕 | 日本在线中文在线 | 亚洲成人第一区 | 黄色成人av | 国产一级久久 | 中文字幕在线观看第一区 | 高清av中文在线字幕观看1 | 亚洲欧美乱综合图片区小说区 | 在线免费观看一区二区三区 | 成人小视频在线观看免费 | 伊人久在线 | 亚洲精品男人天堂 | 欧美色图狠狠干 | 日韩二区在线 | 国产精品久久久久久一二三四五 | 91试看 | 一区二区亚洲精品 | 97超碰福利久久精品 | 亚洲永久字幕 | 在线有码中文字幕 | a级片网站 | 日韩黄色免费在线观看 | 国产在线国偷精品产拍免费yy | 欧美成人h版在线观看 | 少妇bbb搡bbbb搡bbbb′ | 久草在线观看 | 日日摸日日碰 | 最近高清中文字幕在线国语5 | 69av网| 三级a视频 | 天天躁天天躁天天躁婷 | 国产尤物视频在线 | 国产1区2区 | 国产精品婷婷 | 国产一区视频在线播放 | 狠狠狠狠狠狠狠干 | 成人手机在线视频 | 国产午夜三级一区二区三桃花影视 | 国产精品国产三级在线专区 | 特级a老妇做爰全过程 | 久久男人视频 | 久久手机免费视频 | 久久精品一二三区白丝高潮 | 成人一区二区三区在线 | 久久国产精品免费看 | 精品综合久久久 | 丁香激情综合久久伊人久久 | 国产成人精品亚洲精品 | av片一区二区 | 中文字幕文字幕一区二区 | 日韩精品久久久免费观看夜色 | 午夜少妇| 中文亚洲欧美日韩 | 精品视频中文字幕 | 99视屏| 亚洲国产精品推荐 | 黄色免费网 | 国产精品日韩欧美一区二区 | 91精品网站在线观看 | 婷婷丁香色综合狠狠色 | 黄色在线成人 | 亚洲精品中文在线观看 | 成人试看120秒 | 日韩欧美v | 久久久久久久久久久久亚洲 | 欧美一级性视频 | 人人舔人人舔 | 免费高清在线观看成人 | 91在线看 | 激情五月在线视频 | 欧美日韩精品在线视频 | 国内成人精品2018免费看 | 亚洲精品综合一二三区在线观看 | 在线看黄色的网站 | 中文字幕亚洲情99在线 | 国产99免费视频 | 亚洲精品国偷拍自产在线观看蜜桃 | 三级av小说 | 色在线免费视频 | 日韩av电影免费观看 | 婷婷久久综合九色综合 | 婷婷婷国产在线视频 | 欧美一级日韩免费不卡 | 久久综合狠狠综合久久综合88 | 国产一区二区不卡在线 | 超碰在线94 | av片在线观看免费 | 超碰在线人人97 | 国产91对白在线 | 久草在线高清视频 | 91精品国产一区二区三区 | 69夜色精品国产69乱 | 日韩免费电影在线观看 | 91黄视频在线 | 日韩激情中文字幕 | av在线播放免费 | 天天爽天天做 | 免费看一级黄色大全 | 人人玩人人添人人 | 在线影院中文字幕 | 高清色免费 | 国产精品一区二区电影 | 久久精品国产一区二区三区 | 欧美另类人妖 | 三级黄免费看 | 日韩欧在线 | 国产精品99久久久久的智能播放 | 精品999在线| 色婷婷五 | 97国产人人| 久久国产精品免费一区二区三区 | 国产黄免费看 | 97综合视频 | 69人人| 日韩电影一区二区三区 | 日韩在线看片 | 91免费观看网站 | 玖玖在线免费视频 | 午夜视频在线观看一区二区三区 | 国产精品ssss在线亚洲 | 成年人在线免费看 | 欧美激情片在线观看 | 天天色天天草天天射 | 国产成人精品一区二区 | 欧美在线aaa| 欧美analxxxx | 最近中文字幕大全中文字幕免费 | 日本高清xxxx | 成人v| 欧美精品在线视频观看 | 成人在线一区二区 | 精品国产99国产精品 | 国产日产在线观看 | 国产一区二区免费在线观看 | 亚洲最大激情中文字幕 | 国产精品久久久久久a | 欧美黄在线| 黄色一级网 | 日韩精品久久久久久中文字幕8 | 中文字幕在线字幕中文 | 狠狠色狠狠色综合日日小说 | 久久久久久久久久福利 | 99精品免费在线观看 | 在线免费观看亚洲视频 | 国产色婷婷精品综合在线手机播放 | 99精品视频免费 | 精品久久久久久亚洲 | 国产精品久久久久永久免费看 | 美女视频黄是免费的 | 国产高清永久免费 | 中文字幕av免费观看 | 亚洲美女视频在线 | 亚洲精品在线免费看 | 欧美精品三级 | 日韩在线视频线视频免费网站 | 日韩高清精品免费观看 | 色噜噜日韩精品一区二区三区视频 | 国产一区二区免费看 | 国产精品18久久久久久vr | a在线观看免费视频 | 在线观看日韩专区 | 夜夜操狠狠操 | 欧美另类高清 videos | 激情婷婷综合网 | 久久精品成人热国产成 | 亚洲色图激情文学 | 国产精品va在线观看入 | 午夜久久成人 | 欧美超碰在线 | 色av男人的天堂免费在线 | 久久久久综合精品福利啪啪 | 欧美成人影音 | 欧美日韩三级 | 久久久久久综合网天天 | 精品福利视频在线观看 | 久草在线费播放视频 | 999精品 | 字幕网在线观看 | 狠狠干 狠狠操 | 精品视频在线观看 | 五月婷婷影视 | 91热| 91最新网址在线观看 | 热久久99这里有精品 | 亚洲国产高清在线观看视频 | 久久在视频 | 美腿丝袜一区二区三区 | 精品久久久久久一区二区里番 | 五月婷网站 | 9999在线观看 | 日韩三级视频在线观看 | 久久国产亚洲视频 | 日产乱码一二三区别免费 | 久久久91精品国产一区二区精品 | 亚州人成在线播放 | 欧美日韩在线视频观看 | 亚洲精品欧洲精品 | 精品亚洲免a | 久久婷婷网 | 一区二区视频在线看 | 国产成人精品国内自产拍免费看 | 最新中文字幕在线播放 | 亚洲视频播放 | 久久国产高清视频 | 四虎影视成人永久免费观看视频 | 天天色天天射综合网 | 狠狠操电影网 | 99自拍视频在线观看 | 在线观看精品一区 | 国产三级精品三级在线观看 | 亚洲人人射 | 日日夜夜狠狠干 | 超碰在线亚洲 | 日韩精品欧美专区 | 久久久久一区二区三区四区 | 免费又黄又爽视频 | 亚洲午夜久久久影院 | 国产色女 | 99tvdz@gmail.com | 国产麻豆果冻传媒在线观看 | 美女网站一区 | 国产精选在线 | 国产精品福利一区 | 日本公妇在线观看高清 | 亚洲a成人v | 欧美国产精品一区二区 | 日韩国产欧美在线视频 | 日韩av在线看 | 日韩在线小视频 | 亚洲 欧美 国产 va在线影院 | 激情中文在线 | 91在线免费公开视频 | 日韩av一区二区三区在线观看 | 精品国产电影一区二区 | 亚洲成a人片综合在线 | 欧美日韩国产精品一区二区亚洲 | 婷婷黄色片 | 激情久久五月 | 免费观看91 | 国产精品毛片久久久久久久 | 性色av免费观看 | 中文字幕在线观看你懂的 | 国产婷婷一区二区 | 99国产精品视频免费观看一公开 | 国产日产欧美在线观看 | 国产高清视频在线免费观看 | 69av免费视频 | 国产精品久久久久久久免费 | 亚洲乱码在线观看 | 亚洲午夜精品久久久久久久久久久久 | 国产手机在线观看 | 精品一区精品二区高清 | 久久免费播放 | 韩国av一区二区 | 国产老妇av| 啪一啪在线 | 国产伦理一区 | 欧美 激情 国产 91 在线 | 91在线中文 | 亚洲va在线va天堂 | www.亚洲视频| 一区二区三区在线看 | 国产黄色片免费看 | 四虎在线观看 | 狠狠的操狠狠的干 | 中文字幕av专区 | 免费能看的黄色片 | 丁香花在线观看视频在线 | 亚洲综合在线发布 | 97人人爽人人 | 又爽又黄又无遮挡网站动态图 | 日本公乱妇视频 | 久久99国产精品 | 天堂在线成人 | 91综合视频在线观看 | 天天干夜夜擦 | 久久久影院官网 | 日韩精品一区二区三区在线播放 | 亚洲经典中文字幕 | 97成人精品视频在线播放 | 精品国产一区二区久久 | 久久精品免费播放 | 日韩一区二区三区不卡 | 玖玖精品在线 | 成人国产电影在线观看 | 麻豆超碰 | 欧美亚洲一区二区在线 | 午夜视频黄 | 国产亚洲亚洲 | 狠狠色狠狠色合久久伊人 | 欧美日韩免费在线视频 | 久久中文视频 | 国产成人亚洲在线观看 | zzijzzij亚洲日本少妇熟睡 | 四虎成人网 | 亚洲精品视频免费观看 | 久久精品国产亚洲 | 免费观看高清 | 夜夜嗨av色一区二区不卡 | 在线观看 国产 | 久久久久五月 | 中文字幕免费在线看 | 天天射天天干天天操 | 国产伦精品一区二区三区免费 | 国产高清在线一区 | 手机成人av | 欧美日视频| 91精品一区二区三区久久久久久 | 999成人| 国产成人精品久久久久 | 日韩高清一区 | 色婷婷亚洲婷婷 | 日韩精品在线看 | 国产成人免费av电影 | 成人a视频 | 午夜 免费 | 一区二区三区四区五区在线 | 国产美女在线观看 | 91av原创 | www.狠狠色| 久草视频网 | 免费观看国产精品 | 亚洲五月婷婷 | 最新国产精品视频 | 欧美性做爰猛烈叫床潮 | 一区二区精品在线 | 玖玖视频 | 国产色视频| 在线观看亚洲免费视频 | 久久久久亚洲国产精品 | 美女视频久久黄 | 久久久久综合视频 | 亚洲最大av在线播放 | 成年人电影免费看 | 久久国内精品99久久6app | 99精品系列| 午夜男人影院 | 国产精品专区一 | 手机av在线不卡 | 国产资源免费 | 美女精品在线 | 亚洲蜜桃av | 国产精品久久久免费看 | 国产精品1区2区3区 久久免费视频7 | 亚洲国产片色 | av网站免费在线 | 在线午夜电影神马影院 | 日韩在线不卡视频 | 日韩最新在线视频 | 波多野结衣在线观看一区 | 97免费中文视频在线观看 | 国产日韩精品一区二区三区 | 粉嫩aⅴ一区二区三区 | 激情偷乱人伦小说视频在线观看 | 国产精品自产拍在线观看蜜 | 亚洲欧洲视频 | 成年人免费av网站 | 久久无码精品一区二区三区 | 国产涩涩网站 | 五月天亚洲综合小说网 | 国色天香在线 | av在线观 | 国产亚洲精品久久网站 | 日韩精品一区二区三区在线视频 | 在线观看免费一级片 | 成人啪啪18免费游戏链接 | 99久久er热在这里只有精品15 | 九九热只有这里有精品 | 久久躁日日躁aaaaxxxx | 午夜精品久久久久久久99 | 国产精品久久99综合免费观看尤物 | 欧美另类tv | 91久久国产精品 | 国产中文字幕视频 | avove黑丝| 四虎影视精品永久在线观看 | 欧美一区二区在线看 | 国外调教视频网站 | 夜夜摸夜夜爽 | 日韩精品久久久 | 精产嫩模国品一二三区 | 91成人免费在线视频 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 99久久婷婷国产一区二区三区 | 激情婷婷六月 | 免费看的黄色 | 成人在线免费视频 | 国产精品久久久久久久久久久久冷 | 国产精品日韩在线 | 在线视频中文字幕一区 |