午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁 > 知識(shí)庫(kù) > Docker 搭建集群MongoDB的實(shí)現(xiàn)步驟

Docker 搭建集群MongoDB的實(shí)現(xiàn)步驟

熱門標(biāo)簽:江蘇自動(dòng)外呼系統(tǒng)一般多少錢 信貸電銷機(jī)器人系統(tǒng) 400 電話 申請(qǐng)費(fèi)用 山東電信外呼系統(tǒng)靠譜嗎 長(zhǎng)沙回?fù)芡夂粝到y(tǒng) 鸚鵡螺號(hào)航海地圖標(biāo)注時(shí)間 ai電話機(jī)器人營(yíng)銷 比較穩(wěn)定的外呼系統(tǒng) 云南云電銷機(jī)器人招商

前言

由于公司業(yè)務(wù)需要,我們打算自己搭建 MongoDB 的服務(wù),因?yàn)?MongoDB 的云數(shù)據(jù)庫(kù)好貴,我們這次采用副本集的方式來搭建集群,三臺(tái)服務(wù)器,一主、一副、一仲裁

基本概念

Replica Set 副本集:一個(gè)副本集就是一組 MongoDB 實(shí)例組成的集群,由一個(gè)主(Primary)服務(wù)器和多個(gè)備份(Secondary)服務(wù)器構(gòu)成

  • 主節(jié)點(diǎn)(master):主節(jié)點(diǎn)接收所有寫入操作。主節(jié)點(diǎn)將對(duì)其數(shù)據(jù)集所做的所有更改記錄到其 oplog。
  • 副節(jié)點(diǎn)(secondary):復(fù)制主節(jié)點(diǎn)的 oplog 并將操作應(yīng)用到其數(shù)據(jù)集,如果主節(jié)點(diǎn)不可用,一個(gè)合格的副節(jié)點(diǎn)將被選為新的主節(jié)點(diǎn)。
  • 仲裁節(jié)點(diǎn)(arbiter):負(fù)載選舉,當(dāng)主節(jié)點(diǎn)不可用,它將從副節(jié)點(diǎn)中選一個(gè)作為主節(jié)點(diǎn)。

Sharding 分片:

Master-slave 主備

  • MongoDB 4.0 以上版本運(yùn)行時(shí)提示:[main] Master/slave replication is no longer supported,也就是 MongoDB 4.0 后不在支持主從復(fù)制

一、環(huán)境準(zhǔn)備

使用 CentOS 7.6 64bit 系統(tǒng),安裝 Docker、Docker-compose、Docker-Swarm

二、生成 KeyFile

  • MongoDB 使用 KeyFile 認(rèn)證,副本集中的每個(gè) MongoDB 實(shí)例使用 KeyFile 內(nèi)容作為認(rèn)證其他成員的共享密碼。MongoDB 實(shí)例只有擁有正確的 KeyFile 才可以加入副本集。
  • keyFile 的內(nèi)容必須是 6 到 1024 個(gè)字符的長(zhǎng)度,且副本集所有成員的 KeyFile 內(nèi)容必須相同。
  • 有一點(diǎn)要注意是的:在 UNIX 系統(tǒng)中,KeyFile 必須沒有組權(quán)限或完全權(quán)限(也就是權(quán)限要設(shè)置成 X00 的形式)。Windows 系統(tǒng)中,keyFile 權(quán)限沒有被檢查。
  • 可以使用任意方法生成 keyFile。例如,如下操作使用 openssl 生成復(fù)雜的隨機(jī)的 1024 個(gè)字符串。然后使用 chmod 修改文件權(quán)限,只給文件擁有者提供讀權(quán)限。
  • 這是 MongoDB 官方推薦 keyFile 的生成方式:
# 400權(quán)限是要保證安全性,否則mongod啟動(dòng)會(huì)報(bào)錯(cuò)
openssl rand -base64 756 > mongodb.key
chmod 400 mongodb.key

二、創(chuàng)建跨主機(jī)網(wǎng)絡(luò)

搭建集群我們肯定是跨主機(jī)通訊,要搭建 Overlay Network 網(wǎng)絡(luò),我們就要用到 Docker Swarm 這個(gè)工具了。Docker Swarm 是 Docker 內(nèi)置的集群工具,它能夠幫助我們更輕松地將服務(wù)部署到 Docker daemon 的集群之中。

既然要將 Docker 加入到集群,我們就必須先有一個(gè)集群,我們?cè)谌我庖粋€(gè) Docker 實(shí)例上都可以通過 docker swarm init 來初始化集群。

$ sudo docker swarm init

Swarm initialized: current node (t4ydh2o5mwp5io2netepcauyl) is now a manager.

To add a worker to this swarm, run the following command:

  docker swarm join --token SWMTKN-1-4dvxvx4n7magy5zh0g0de0xoues9azekw308jlv6hlvqwpriwy-cb43z26n5jbadk024tx0cqz5r 192.168.1.5:2377

在集群初始化后,這個(gè) Docker 實(shí)例就自動(dòng)成為了集群的管理節(jié)點(diǎn),而其他 Docker 實(shí)例可以通過運(yùn)行這里所打印的 docker swarm join 命令來加入集群。

加入到集群的節(jié)點(diǎn)默認(rèn)為普通節(jié)點(diǎn),如果要以管理節(jié)點(diǎn)的身份加入到集群中,我們可以通過 docker swarm join-token 命令來獲得管理節(jié)點(diǎn)的加入命令。

$ sudo docker swarm join-token manager
To add a manager to this swarm, run the following command:

  docker swarm join --token SWMTKN-1-60am9y6axwot0angn1e5inxrpzrj5d6aa91gx72f8et94wztm1-7lz0dth35wywekjd1qn30jtes 192.168.1.5:2377

我們通過這些命令來建立用于我們服務(wù)開發(fā)的 Docker 集群,并將相關(guān)開發(fā)同事的 Docker 加入到這個(gè)集群里,就完成了搭建跨主機(jī)網(wǎng)絡(luò)的第一步。

建立跨主機(jī)網(wǎng)絡(luò)

接下來,我們就通過 docker network create 命令來建立 Overlay 網(wǎng)絡(luò)。

$ sudo docker network create --driver overlay --attachable mongodbs

在創(chuàng)建 Overlay 網(wǎng)絡(luò)時(shí),我們要加入 --attachable 選項(xiàng)以便不同機(jī)器上的 Docker 容器能夠正常使用到它。

在創(chuàng)建了這個(gè)網(wǎng)絡(luò)之后,我們可以在任何一個(gè)加入到集群的 Docker 實(shí)例上使用 docker network ls 查看一下其下的網(wǎng)絡(luò)列表。我們會(huì)發(fā)現(xiàn)這個(gè)網(wǎng)絡(luò)定義已經(jīng)同步到了所有集群中的節(jié)點(diǎn)上。

$ sudo docker network ls
NETWORK ID     NAME        DRIVER       SCOPE
## ......
y89bt74ld9l8    mongodbs        overlay       swarm
## ......

接下來我們要修改 Docker Compose 的定義,讓它使用這個(gè)我們已經(jīng)定義好的網(wǎng)絡(luò),而不是再重新創(chuàng)建網(wǎng)絡(luò)。

我們只需要在 Docker Compose 配置文件的網(wǎng)絡(luò)定義部分,將網(wǎng)絡(luò)的 external 屬性設(shè)置為 true,就可以讓 Docker Compose 將其建立的容器都連接到這個(gè)不屬于 Docker Compose 的項(xiàng)目上了。

networks:
 mesh:
  external: true

通過這個(gè)實(shí)現(xiàn),我們?cè)陂_發(fā)中就使整個(gè)服務(wù)都處于一個(gè)可以使用別名映射網(wǎng)絡(luò)中,避免了要對(duì)不同功能聯(lián)調(diào)時(shí)切換服務(wù) IP 的煩瑣流程。在這種結(jié)構(gòu)下,我們只需要讓我們開發(fā)的 Docker 退出和加入不同的集群,就能馬上做到切換不同聯(lián)調(diào)項(xiàng)目。

二、編寫 docker-compose 文件

主節(jié)點(diǎn)

version: "3"
services: 
 master:
  image: mongo:4.1
  container_name: master
  environment:
   MONGO_INITDB_ROOT_USERNAME: root
   MONGO_INITDB_ROOT_PASSWORD: 123456
   TZ: "Asia/Shanghai"
  volumes:
   # 掛載 MongoDB 數(shù)據(jù)目錄
   - "/data/docker/mongodb/data/mongo:/data/db:rw"
   # 掛載 KeyFile
   - "/data/docker/mongodb/data/mongodb.key:/data/mongodb.key"
  ports:
   - "27018:27017"
  networks:
   - mongodbs
  command:
   # 密碼
   --auth
   # 副本集名稱
   --replSet testSet 
   --oplogSize 128
   --keyFile /data/mongodb.key
# Swarm 跨主機(jī)網(wǎng)絡(luò)網(wǎng)絡(luò)
networks:
 mongodbs:
  external: true

副節(jié)點(diǎn)

version: "3"
services: 
secondary:
 image: mongo:4.1
 container_name: secondary
 environment:
  MONGO_INITDB_ROOT_USERNAME: root
  MONGO_INITDB_ROOT_PASSWORD: 123456
  TZ: "Asia/Shanghai"
 volumes:
  - "/data/docker/mongodb/data/mongo:/data/db:rw"
  - "/data/docker/mongodb/data/mongodb.key:/data/mongodb.key"
 ports:
  - "27018:27017"
 networks:
  - mongodbs
 command:
  --auth
  --replSet testSet 
  --oplogSize 128
  --keyFile /data/mongodb.key
networks:
mongodbs:
 external: true

仲裁節(jié)點(diǎn),因?yàn)橹俨霉?jié)點(diǎn)不需要存儲(chǔ)數(shù)據(jù),他只是用來當(dāng)主節(jié)點(diǎn)掛掉后選舉新的主節(jié)點(diǎn),所以不需要密碼、映射端口等操作

version: "3"
services:
arbiter:
 image: mongo:4.1
 container_name: arbiter
 restart: always
 volumes:
  - "/data/docker/mongodb/data/mongo:/data/db:rw"
  - "/data/docker/mongodb/data/mongo_key:/mongo:rw"
 networks:
  - mongodbs
 command:
  mongod --replSet testSet --smallfiles --oplogSize 128
networks:
mongodbs:
 external: true

三、啟動(dòng)容器

接下來我們分別在三臺(tái)服務(wù)器中使用容器編排啟動(dòng)容器

docker-compose up -d

四、配置副本集

進(jìn)入主節(jié)點(diǎn)容器內(nèi)部

docker exec -it master mongo

在 mongo shell 里執(zhí)行:

> rs.initiate()
{
   "info2" : "no configuration specified. Using a default configuration for the set",
   "me" : "7abd89794aa7:27017",
   "ok" : 1
}

繼續(xù)執(zhí)行:

testSet:SECONDARY> rs.add('secondary:27017')
{
   "ok" : 1,
   "$clusterTime" : {
       "clusterTime" : Timestamp(1599562800, 1),
       "signature" : {
           "hash" : BinData(0,"wrxMUIX/0bEyLgCVoQqdLvH59T0="),
           "keyId" : NumberLong("6870069879538450434")
       }
   },
   "operationTime" : Timestamp(1599562800, 1)
}

繼續(xù)執(zhí)行,其中 true 表示這個(gè)節(jié)點(diǎn)是仲裁節(jié)點(diǎn)

testSet:PRIMARY> rs.add('arbiter:27017',true)
{
   "ok" : 1,
   "$clusterTime" : {
       "clusterTime" : Timestamp(1599562838, 1),
       "signature" : {
           "hash" : BinData(0,"p9ub49lLD8ij8nkxpfu2l/AvRRY="),
           "keyId" : NumberLong("6870069879538450434")
       }
   },
   "operationTime" : Timestamp(1599562838, 1)
}

查看配置

testSet:PRIMARY> rs.conf()
{
   "_id" : "testSet",
   "version" : 3,
   "protocolVersion" : NumberLong(1),
   "writeConcernMajorityJournalDefault" : true,
   "members" : [
       {
           "_id" : 0,
           "host" : "7abd89794aa7:27017",
           "arbiterOnly" : false,
           "buildIndexes" : true,
           "hidden" : false,
           "priority" : 1,
           "tags" : {

           },
           "slaveDelay" : NumberLong(0),
           "votes" : 1
       },
       {
           "_id" : 1,
           "host" : "secondary:27017",
           "arbiterOnly" : false,
           "buildIndexes" : true,
           "hidden" : false,
           "priority" : 1,
           "tags" : {

           },
           "slaveDelay" : NumberLong(0),
           "votes" : 1
       },
       {
           "_id" : 2,
           "host" : "arbiter:27017",
           "arbiterOnly" : true,
           "buildIndexes" : true,
           "hidden" : false,
           "priority" : 0,
           "tags" : {

           },
           "slaveDelay" : NumberLong(0),
           "votes" : 1
       }
   ],
   "settings" : {
       "chainingAllowed" : true,
       "heartbeatIntervalMillis" : 2000,
       "heartbeatTimeoutSecs" : 10,
       "electionTimeoutMillis" : 10000,
       "catchUpTimeoutMillis" : -1,
       "catchUpTakeoverDelayMillis" : 30000,
       "getLastErrorModes" : {

       },
       "getLastErrorDefaults" : {
           "w" : 1,
           "wtimeout" : 0
       },
       "replicaSetId" : ObjectId("5f576426fe90ef2dd8cd2700")
   }
}

查看狀態(tài)

testSet:PRIMARY> rs.status()
{
   "set" : "testSet",
   "date" : ISODate("2020-09-08T11:45:12.096Z"),
   "myState" : 1,
   "term" : NumberLong(1),
   "syncingTo" : "",
   "syncSourceHost" : "",
   "syncSourceId" : -1,
   "heartbeatIntervalMillis" : NumberLong(2000),
   "optimes" : {
       "lastCommittedOpTime" : {
           "ts" : Timestamp(1599565502, 1),
           "t" : NumberLong(1)
       },
       "lastCommittedWallTime" : ISODate("2020-09-08T11:45:02.775Z"),
       "readConcernMajorityOpTime" : {
           "ts" : Timestamp(1599565502, 1),
           "t" : NumberLong(1)
       },
       "readConcernMajorityWallTime" : ISODate("2020-09-08T11:45:02.775Z"),
       "appliedOpTime" : {
           "ts" : Timestamp(1599565502, 1),
           "t" : NumberLong(1)
       },
       "durableOpTime" : {
           "ts" : Timestamp(1599565502, 1),
           "t" : NumberLong(1)
       },
       "lastAppliedWallTime" : ISODate("2020-09-08T11:45:02.775Z"),
       "lastDurableWallTime" : ISODate("2020-09-08T11:45:02.775Z")
   },
   "lastStableRecoveryTimestamp" : Timestamp(1599565492, 1),
   "lastStableCheckpointTimestamp" : Timestamp(1599565492, 1),
   "members" : [
       {
           "_id" : 0,
           "name" : "7abd89794aa7:27017",
           "ip" : "10.0.1.41",
           "health" : 1,
           "state" : 1,
           "stateStr" : "PRIMARY",
           "uptime" : 2784,
           "optime" : {
               "ts" : Timestamp(1599565502, 1),
               "t" : NumberLong(1)
           },
           "optimeDate" : ISODate("2020-09-08T11:45:02Z"),
           "syncingTo" : "",
           "syncSourceHost" : "",
           "syncSourceId" : -1,
           "infoMessage" : "",
           "electionTime" : Timestamp(1599562790, 2),
           "electionDate" : ISODate("2020-09-08T10:59:50Z"),
           "configVersion" : 3,
           "self" : true,
           "lastHeartbeatMessage" : ""
       },
       {
           "_id" : 1,
           "name" : "secondary:27017",
           "ip" : "10.0.1.233",
           "health" : 1,
           "state" : 2,
           "stateStr" : "SECONDARY",
           "uptime" : 2711,
           "optime" : {
               "ts" : Timestamp(1599565502, 1),
               "t" : NumberLong(1)
           },
           "optimeDurable" : {
               "ts" : Timestamp(1599565502, 1),
               "t" : NumberLong(1)
           },
           "optimeDate" : ISODate("2020-09-08T11:45:02Z"),
           "optimeDurableDate" : ISODate("2020-09-08T11:45:02Z"),
           "lastHeartbeat" : ISODate("2020-09-08T11:45:11.494Z"),
           "lastHeartbeatRecv" : ISODate("2020-09-08T11:45:11.475Z"),
           "pingMs" : NumberLong(0),
           "lastHeartbeatMessage" : "",
           "syncingTo" : "7abd89794aa7:27017",
           "syncSourceHost" : "7abd89794aa7:27017",
           "syncSourceId" : 0,
           "infoMessage" : "",
           "configVersion" : 3
       },
       {
           "_id" : 2,
           "name" : "arbiter:27017",
           "ip" : null,
           "health" : 0,
           "state" : 8,
           "stateStr" : "(not reachable/healthy)",
           "uptime" : 0,
           "lastHeartbeat" : ISODate("2020-09-08T11:45:10.463Z"),
           "lastHeartbeatRecv" : ISODate("1970-01-01T00:00:00Z"),
           "pingMs" : NumberLong(0),
           "lastHeartbeatMessage" : "Error connecting to arbiter:27017 :: caused by :: Could not find address for arbiter SocketException: Host not found (authoritative)",
           "syncingTo" : "",
           "syncSourceHost" : "",
           "syncSourceId" : -1,
           "infoMessage" : "",
           "configVersion" : -1
       }
   ],
   "ok" : 1,
   "$clusterTime" : {
       "clusterTime" : Timestamp(1599565502, 1),
       "signature" : {
           "hash" : BinData(0,"7/ei+8UrhlpIny9zKeWuAFpn46c="),
           "keyId" : NumberLong("6870069879538450434")
       }
   },
   "operationTime" : Timestamp(1599565502, 1)
}

五、驗(yàn)證 MongoDB 可用性

先進(jìn)入主節(jié)點(diǎn)服務(wù)器添加一條數(shù)據(jù)

docker exec -it master mongo
use admin
db.auth('root', '123456')
use test
db.test.insert({name:"muyang",age:20})

在來副節(jié)點(diǎn)服務(wù)器查看是否已經(jīng)同步了這條數(shù)據(jù)

[root@linux secondary] docker exec -it secondary mongo
testSet:SECONDARY> use admin
testSet:SECONDARY> db.auth('root', '123456')
testSet:SECONDARY> use test
testSet:SECONDARY> db.test.find()
2020-09-08T19:03:02.295+0800 E QUERY  [js] uncaught exception: Error: listCollections failed: {
   "operationTime" : Timestamp(1599562972, 1),
   "ok" : 0,
   "errmsg" : "not master and slaveOk=false",
   "code" : 13435,
   "codeName" : "NotMasterNoSlaveOk",
   "$clusterTime" : {
       "clusterTime" : Timestamp(1599562972, 1),
       "signature" : {
           "hash" : BinData(0,"mhsrpGHRl7qZg2QOjyS3RbBb/Yc="),
           "keyId" : NumberLong("6870069879538450434")
       }
   }
} :
testSet:SECONDARY> rs.slaveOk()
testSet:SECONDARY> db.users.find()
{ "_id" : ObjectId("5f5764b1f909544b783696c2"), "name" : "muyang", "age" : 20 }

在 secondary 查詢時(shí)報(bào)如下錯(cuò)誤:

not master and slaveok=false

這是正常的,因?yàn)?secondary 是不允許讀寫的,如果非要解決,方法如下:

testSet:SECONDARY> rs.slaveOk()

 到此這篇關(guān)于Docker 搭建集群MongoDB的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)Docker 搭建集群MongoDB內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

標(biāo)簽:拉薩 齊齊哈爾 烏海 衡陽 運(yùn)城 澳門 亳州 嘉興

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Docker 搭建集群MongoDB的實(shí)現(xiàn)步驟》,本文關(guān)鍵詞  Docker,搭建,集群,MongoDB,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Docker 搭建集群MongoDB的實(shí)現(xiàn)步驟》相關(guān)的同類信息!
  • 本頁收集關(guān)于Docker 搭建集群MongoDB的實(shí)現(xiàn)步驟的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    亚洲国产精品毛片| 别急慢慢来1978如如2| 乱一区二区av| 日本一本中文字幕| 精品久久久久一区| 内射国产内射夫妻免费频道| 精品成人在线视频| 中文字幕亚洲精品在线| 久久久久久a亚洲欧洲aⅴ| 欧美午夜无遮挡| 97在线视频人妻无码| 精品欧美一区二区久久久伦| 国产精品乱人伦| 国产日产精品一区二区三区的介绍| 国产人妖伪娘一区91| 亚洲午夜国产一区99re久久| 中文字幕一区二区人妻| 精品一区二区中文字幕| 久久久久久久久久久免费精品| 国产成人高清视频| 国产精品揄拍100视频| 成人在线资源网址| 欧美一级理论性理论a| 无码人妻一区二区三区线| 日韩人妻精品一区二区三区| 色偷偷偷亚洲综合网另类| 久久综合九色欧美综合狠狠| 欧美美女性生活视频| 亚洲精品成人三区| 亚洲无限av看| 国产东北露脸精品视频| a级黄色免费视频| 成人av番号网| 欧美大胆人体bbbb| 久久亚洲风情| www..com.cn蕾丝视频在线观看免费版 | 亚洲性xxxx| 国产一区二区精品久久99 | 国产日韩欧美中文| 一本一道久久a久久精品综合蜜臀| 丁香六月婷婷综合| 久久久久久综合网| 韩国成人动漫在线观看| 俺去了亚洲欧美日韩| 久久精品网站免费观看| 久久国产波多野结衣| 777久久久精品一区二区三区| 九九久久精品一区| 在线视频国产一区| 日韩中文字幕免费观看| 三级黄色录像视频| 国产成人av影视| 51成人做爰www免费看网站| 亚洲国产精品一区二区三区| 久久精品日产第一区二区三区高清版 | 精品无码久久久久| 色噜噜狠狠一区二区三区狼国成人| 精品中文字幕人| 中文亚洲视频在线| 亚洲欧美日本韩国| 国产乱对白刺激视频不卡| 中文字幕第31页| 免费人成视频在线播放| 日本一区视频在线播放| 国产精品成人播放| 日韩有码在线电影| 日韩欧美卡一卡二| 91麻豆精品一区二区三区| 国内精品久久久久久久久久| www亚洲色图| 欧美在线观看日本一区| 在线观看一区日韩| 国产精品热久久久久夜色精品三区| www.com欧美| 国产探花视频在线| 欧美韩国日本在线| 国产精品美女免费看| 欧美大黄免费观看| 国产性色一区二区| 日韩精品一区二区亚洲av性色| mm131国产精品| 欧美日产一区二区三区在线观看| 国产精品入口福利| 一区二区三区久久精品| 性感美女极品91精品| 国产成人av电影在线播放| av观看在线免费| 在线看成人av| 国产喷水在线观看| 亚洲av无日韩毛片久久| 欧美综合77777色婷婷| 69av在线视频| 中文字幕免费精品一区高清| 精品国产123| 欧美另类高清zo欧美| 午夜精品一区二区三区三上悠亚| 成人三级在线视频| 日日躁夜夜躁白天躁晚上躁91| 男人的天堂一区| 加勒比精品视频| 亚洲精品午夜在线观看| 欧美黑人又粗又大又爽免费| 日本午夜精品电影 | 欧美日韩精品欧美日韩精品一综合| 中文字幕av一区二区三区| 久久综合久久综合久久综合| 成人在线综合网| 成人美女在线视频| 国产精品综合久久| 成人蜜臀av电影| 久久99国产精品久久99| 久久99国产精品免费网站| 国产在线精品一区在线观看麻豆| 国产精品欧美激情在线| 国产极品久久久| 久久亚洲二区| 国产精选一区二区三区| 91农村精品一区二区在线| 99热国产精品| 成人黄色a**站在线观看| 99久久综合狠狠综合久久| 粉嫩绯色av一区二区在线观看 | 成人av蜜桃| 97久久夜色精品国产九色| 午夜精品久久久久久久99热浪潮| 在线色欧美三级视频| 国外成人在线直播| 91久久久久久久久久久久久| 国产精品白嫩美女在线观看 | 国产日韩av网站| 不卡av免费在线| av之家在线观看| www.四虎精品| 视频免费在线观看| 日韩视频在线观看免费视频| 91看片在线播放| 成人黄色免费网| 无码精品视频一区二区三区 | 久久精品成人欧美大片| 不卡av电影院| 国产成人久久久精品一区| 久久av一区二区三区漫画| 欧美日韩精品免费观看视一区二区| 天堂а√在线中文在线| 岛国精品一区二区三区| 国模私拍在线观看| 中文字幕69页| 久久av资源站| 亚洲一区二区三区中文字幕| 欧美精品成人一区二区三区四区| 久久精品在线视频| 91影视免费在线观看| 先锋影音亚洲资源| 中文av字幕在线观看| 久久精品亚洲a| www五月天com| 久久国产福利国产秒拍| 99国产精品国产精品久久| 一区二区在线观看免费| 亚洲精品久久久久| 亚洲自拍中文字幕| 日本成人黄色| 女性隐私黄www网站视频| 一级肉体全黄裸片| 一级黄色片在线观看| 91麻豆精品视频| 精品久久国产97色综合| 欧美怡春院一区二区三区| 国产奶头好大揉着好爽视频| 九色91porny| 在线免费观看一区二区| 国产精品中文字幕一区二区三区| 日韩欧美999| 国自产精品手机在线观看视频| 亚洲无玛一区| 免费不卡av网站| 日韩无码精品一区二区三区| 国产成人综合网| 综合久久国产九一剧情麻豆| 亚洲精品久久久久久久久久久久久 | 色伦专区97中文字幕| 天堂资源在线亚洲资源| 日韩www视频| 午夜小视频在线播放| 亚洲欧美日韩一区| 欧美成人免费一级人片100| 久久青青草综合| 日韩毛片无码永久免费看| av网站免费大全| 欧美激情综合网| 在线观看日韩av先锋影音电影院| 午夜精品久久久久久久久久久久| 91动漫在线看| 一级片中文字幕| 99在线精品免费| 最新亚洲国产精品| 日韩欧美猛交xxxxx无码| 99久久99久久精品免费| a亚洲天堂av| 一区二区三区在线播放欧美| 蜜桃日韩视频| 日本一级片在线播放| 精品一区二区三区香蕉蜜桃| 欧美日韩在线不卡| 欧美极品色图| 亚洲黄色免费视频| 国内精品在线播放| 国产亚洲精品高潮| 亚洲 欧洲 日韩| 日本少妇高清视频| 亚洲精品日韩综合观看成人91| 久久久国产精品x99av | 日本波多野结衣在线| 亚洲国产高清福利视频| 国产一区再线| 国产主播在线观看| 欧美国产精品久久| 国产精品一区二区三区毛片淫片| 性欧美在线视频| 大胆亚洲人体视频| 欧美最猛性xxxx| 久久久久久成人网| 国产欧美一区二区三区鸳鸯浴| 国产成人精品一区二区在线| 国产伦精品一区二区三区88av| 不卡的av在线播放| 日韩专区在线播放| 人妻熟女一二三区夜夜爱| 国产美女免费看| 在线观看91av| 日本一区免费看| 亚洲欧美偷拍视频| 欧美v日韩v国产v| 亚洲mv在线看| 理论片中文字幕| 久久中文字幕视频| 亚洲v在线观看| 久久一二三国产| 欧美在线播放视频| 亚洲自拍偷拍一区二区| 国产日产欧美一区二区视频| 亚洲综合一区二区不卡| 五月天丁香激情| 精品久久久视频| 亚洲www视频| a级片在线免费看| 亚洲免费一在线| 91丝袜超薄交口足| 中文字幕亚洲一区二区av在线| 国产在线视频一区| 国产无套内射又大又猛又粗又爽| 欧美视频日韩视频| 日韩视频一二三| 成人高清视频在线| 久久国产精品99久久久久久丝袜| 屁屁影院国产第一页| 欧美午夜宅男影院在线观看| koreanbj精品视频一区| 国产亚洲欧美日韩在线一区| 91影院在线免费观看视频| 精品区在线观看| 色综合久久悠悠| 久久国产视频一区| 亚洲精品久久久久中文字幕欢迎你 | 久久艹免费视频| 久久视频精品在线| 免费污污视频在线观看| 亚洲天堂男人天堂女人天堂| www.99热| 欧美一区二区在线看| 在线免费观看av的网站| 伊人婷婷欧美激情| 免费网站在线观看视频| 国产精品丝袜久久久久久app| 一区二区三区我不卡| 狠狠色丁香婷婷综合| 91久久久久久久久久| 人妻一区二区三区免费| 97视频在线观看视频免费视频| 精品无码久久久久久久| 日韩国产高清视频在线| 国产一区第一页| 欧美丰满高潮xxxx喷水动漫| aaa黄色大片| 精品视频全国免费看| 日本黄大片一区二区三区| 欧美在线你懂的| 国产精品熟女一区二区不卡| 亚洲欧美偷拍卡通变态| 天天干天天玩天天操| 欧美一区二视频| 久久久久亚洲av片无码下载蜜桃| 国产一区二区三区视频免费| 国产亚洲成人精品| 欧美日韩999| 亚洲第一精品网站| 欧美人在线视频| 天堂网免费视频| 91精品国产成人| 91亚洲国产成人精品一区| 成人av.网址在线网站| 天天干,夜夜爽| 久久久精彩视频| 国产精品伦理一区二区| 欧美极品欧美精品欧美| 欧美特级限制片免费在线观看| av不卡中文字幕| 欧美mv日韩mv国产| 一级片手机在线观看| 亚洲天堂免费视频| 国产suv一区二区| 欧美 日韩 国产 在线观看| 黄色一区二区在线| 久久久久亚洲AV成人无在| 中文字幕欧美日韩va免费视频| 波多野结衣啪啪| 国产女精品视频网站免费| 久久国产视频网| 北条麻妃视频在线| 日韩亚洲欧美在线| 黄色一级视频免费| 国产91成人在在线播放| 成人app下载| chinese麻豆新拍video| 久久久久久18| 奇米精品一区二区三区四区| 日韩 欧美 自拍| 精品日本高清在线播放| 日韩大片免费在线观看| 国产精品一二区| 中文字幕国产一区| 国产精品免费无码| 久久免费视频在线观看| 爽好多水快深点欧美视频| bt天堂新版中文在线地址| 欧美日韩国产一区二区三区| a级片在线观看| 日本aⅴ大伊香蕉精品视频| 国产精品一区二区黑丝| 国产成人精品无码播放| 欧美一区二区三区四区久久| av在线亚洲天堂| www.男人天堂网| 色哟哟入口国产精品| 99久久婷婷国产| 欧美成人黄色网| 精品乱色一区二区中文字幕| 久久久久久免费| 国产小视频你懂的| 日韩国产精品一区二区| 欧美日韩视频在线一区二区| av中文字幕观看| 欧美一级特黄a| 久久精品成人欧美大片| 极品少妇xxxx精品少妇| 潘金莲一级淫片aaaaa| 国产一区二区在线播放| 一区二区三区日韩在线观看| 五月婷婷激情网| 男人的天堂avav| 最近2019免费中文字幕视频三| 久久国产生活片100| 色91精品久久久久久久久| 欧美极度另类性三渗透| 国产精品久久久久影视| 中文区中文字幕免费看| 男人添女人荫蒂免费视频| 国产一级揄自揄精品视频| 国产不卡视频在线观看| 亚洲女人久久久| 日本一区二区视频| 欧美成人免费小视频| 国产欧美日韩激情| 免费视频网站在线观看入口| 国产一线二线三线在线观看| 欧美国产中文字幕| 欧美性生交大片免费| 国产精品 欧美精品| 99热6这里只有精品| 欧美在线一区视频| 国产精品青草久久久久福利99| 亚洲高清免费在线| 国内成+人亚洲+欧美+综合在线| 杨钰莹一级淫片aaaaaa播放| 狠狠干视频网站| 国产精品爽黄69天堂a| 色婷婷av一区二区三区软件 | 亚洲天堂久久av| 五月婷婷综合激情| 国产乱人伦精品一区二区在线观看 | 国产精品无码网站| 不卡一卡2卡3卡4卡精品在| www.欧美免费| 欧美日韩电影一区| 日本一区二区三级电影在线观看 | 欧美网站免费观看| 91精品国产99久久久久久红楼| 在线播放精品一区二区三区| 亚洲成a人片在线不卡一二三区 | 亚洲国产日韩欧美在线观看| 欧美日本韩国在线| 欧美激情精品久久久久久蜜臀 | 精品国产不卡一区二区三区| 国产网红主播福利一区二区| 中文人妻熟女乱又乱精品| 777一区二区| 日韩一级性生活片| 欧美日韩精品免费在线观看视频| 欧美精品中文字幕一区| 欧美日韩你懂得|