3atv精品不卡视频,97人人超碰国产精品最新,中文字幕av一区二区三区人妻少妇,久久久精品波多野结衣,日韩一区二区三区精品

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

zookeeper源码分析之一服务端启动过程

發布時間:2025/4/5 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 zookeeper源码分析之一服务端启动过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

zookeeper簡介

? ? ?zookeeper是為分布式應用提供分布式協作服務的開源軟件。它提供了一組簡單的原子操作,分布式應用可以基于這些原子操作來實現更高層次的同步服務,配置維護,組管理和命名。zookeeper的設計使基于它的編程非常容易,若我們熟悉目錄樹結構的文件系統,也會很容易使用zookeeper的數據模型樣式。它運行在java上,有java和c的客戶端。

  協作服務因難于獲取正確而臭名遠揚,他們特別易于出錯如競爭條件和死鎖。zookeeper的動機是減輕分布式應用中從零開始實現協作服務的壓力。

zookeeper的特點

1.簡單:zookeeper運行分布式進行通過一個共享的層次命名空間來進行協作,該命名空間的組織類似于標準的文件系統。命名空間包括數據注冊器(稱之為znode),在zookeeper看來,這類似于文件和目錄。與典型的文件系統設計用來存儲不同的是,zookeeper數據是存放在內存中,這意味著zookeeper可以實現很高的吞吐量和低延遲。

?ZooKeeper?實現在高性能,高可用性,嚴格有序的訪問方面有很大的優勢。在性能方面的優勢使它可以應用在大型的的分布式系統。在可靠性方面,避免單點故障。嚴格的順序訪問使它在客戶端可以實現復雜的同步原語。

2. 可復制:類似于分布式進程的協作,zookeeper本身很容易在一組主機(稱之為集合)中實現復制。zookeeper服務示意圖:

  組成ZooKeeper服務的一組服務器都必須知道對方的。它們保存了內存映像的狀態,以及在持久存儲中的事務日志和快照。只要大部分的服務器可用,ZooKeeper服務將可用。
客戶端連接到一臺ZooKeeper服務器。客戶端維護一個TCP連接,通過它發送請求,得到響應,得到監視事件,并發送心跳。如果TCP連接到服務器中斷,客戶端可以連接到不同的服務器。

3. 有序:ZooKeeper給每次更新使用數字打標記,它反映了所有zookeeper事務的順序。隨后的操作可以使用這些順序來實現更高級別的抽象,如同步原語。

4.快速:它特別快,在“讀為主”的工作中,ZooKeeper?應用程序運行在數千臺機器,它在讀遠比寫更多的時候(在10:1的比例)表現的最好。

數據模型與層次命名空間

ZooKeeper提供的名稱空間更像是一個標準的文件系統。一個名字是一個由一個(或)分隔的路徑元素的序列。zookeeper名稱空間的每個節點由路徑來標示。

節點和臨時節點

  不像標準的文件系統,在ZooKeeper?命名空間中每個節點都有與它相關的數據以及子節點。它就像這樣一個文件系統,它允許一個文件也可以是一個目錄。(zookeeper是用來儲存協作數據:狀態信息,配置,位置信息等,因此,存儲在每個節點的數據通常是很小的,在字節到千字節范圍。)我們使用術語znode來表明我們談論的是zookeeper數據節點。
  znodes保存一個數據結構,該數據結構包括數據變化的版本號和時間戳,ACL的變化,這些信息允許緩存驗證和協作更新。一個znode的數據的每次變化,版本號的增加。例如,每當客戶檢索數據時,它也接收到數據的版本。
  在一個命名空間中的每個節點存儲的數據的讀寫都是原子性的。讀獲取一個Znode所有的數據字節;寫替換所有的數據。每個節點都有一個訪問控制列表(ACL),限制誰可以做什么。
  zookeeper也有臨時節點的概念。這些znodes只要創建znode的會話是活躍的,它就存在的。當會話結束時,這些znode被刪除。

條件更新與監控

ZooKeeper支持監控的概念。客戶端可以在一個znode上設置一個監控。當znode發生變化時會觸發或者移除監控。當監控觸發時,客戶端接收到一個報文,表明znode發生了變化。若客戶端和一個zookeeper服務器的連接損壞時,客戶端接收到一個本地通知。

保障

?

ZooKeeper非常快速和簡單. 雖然它的目標是為建設更為復雜的服務,例如同步,它提供了一系列的保證。這些是:

  • 順序一致性----客戶端的更新將被應用于它們被發送的命令中。

  • 原子性-- - 更新要么成功要么失敗,不存在部分成功或者部分失敗.

  • 單系統映像 ---- 不管連接到哪臺服務器,客戶端看到相同的服務視圖.

  • 可靠性---- 一旦一個更新發生,直到下次一個客戶端重新了更新,否則從更新的時間后都會保持。

  • 及時性--- - 在一定時間范圍內保證系統的客戶視圖是最新的.

簡單api

zookeeper設計目標之一是提供一個簡單的編程接口,因此,它只支持下面這些操作:

create

在節點樹上某個位置上創建一個新的節點。

delete

刪除一個節點

exists

測試某位置的節點是否存在

get data

從一個節點讀取數據

set data

向一個節點寫入數據

get children

檢索一個節點的一組子節點

sync

等待數據傳播至一致。

實現

zookeeper組件顯示了zookeeper服務的高級組件。除了request processor,組成zookeeper服務的每個服務器復制它的每個組件的copy。

zookeeper組件

?

replicated database是一個包含整個數據數的內存數據庫. 為了可復原,更新被寫到磁盤上,寫操作在應用到內存數據庫之前,先序列化到磁盤。

每個zookeeper服務器給所有的客戶端提供服務。客戶端恰恰連接到一個服務器來提交請求。讀請求由每個服務器數據庫的本地復制提供服務。寫請求改變了服務的狀態,由request processor來處理。

作為通信協議的一部分,所有客戶端的寫請求由一個單獨的服務器處理,這個服務器是zookeeper的leader服務器,其余的zookeeper服務器叫做follower,follower從leader接收消息并達成消息傳輸。消息層在失敗后替換leader并同步到連接到leader所有的follower。

ZooKeeper使用自定義的原子消息協議. 因消息層是原子性的, ZooKeeper 可以保證本地復制不會沖突. 當leader接收到一個寫請求,當寫操作應用到系統時,leader計算出系統的狀態,并轉化成一個捕捉新狀態的事務.

?zookeeper啟動

? 服務端啟動

bin/zkServer.sh start

?其中,啟動命令如下:

start)echo -n "Starting zookeeper ... "if [ -f "$ZOOPIDFILE" ]; thenif kill -0 `cat "$ZOOPIDFILE"` > /dev/null 2>&1; thenecho $command already running as process `cat "$ZOOPIDFILE"`.exit 0fifinohup "$JAVA" $ZOO_DATADIR_AUTOCREATE "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" \"-Dzookeeper.log.file=${ZOO_LOG_FILE}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \-XX:+HeapDumpOnOutOfMemoryError -XX:OnOutOfMemoryError='kill -9 %p' \-cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG" > "$_ZOO_DAEMON_OUT" 2>&1 < /dev/null &if [ $? -eq 0 ]thenif /bin/echo -n $! > "$ZOOPIDFILE"thensleep 1pid=$(cat "${ZOOPIDFILE}")if ps -p "${pid}" > /dev/null 2>&1; thenecho STARTEDelseecho FAILED TO STARTexit 1fielseecho FAILED TO WRITE PIDexit 1fielseecho SERVER DID NOT STARTexit 1fi;;

其中:

ZOOMAIN 是啟動程序的入口,其類為:

org.apache.zookeeper.server.quorum.QuorumPeerMain

它的啟動方法為:

/*** To start the replicated server specify the configuration file name on* the command line.* @param args path to the configfile*/public static void main(String[] args) {QuorumPeerMain main = new QuorumPeerMain();try { main.initializeAndRun(args);} catch (IllegalArgumentException e) {LOG.error("Invalid arguments, exiting abnormally", e);LOG.info(USAGE);System.err.println(USAGE);System.exit(2);} catch (ConfigException e) {LOG.error("Invalid config, exiting abnormally", e);System.err.println("Invalid config, exiting abnormally");System.exit(2);} catch (DatadirException e) {LOG.error("Unable to access datadir, exiting abnormally", e);System.err.println("Unable to access datadir, exiting abnormally");System.exit(3);} catch (AdminServerException e) {LOG.error("Unable to start AdminServer, exiting abnormally", e);System.err.println("Unable to start AdminServer, exiting abnormally");System.exit(4);} catch (Exception e) {LOG.error("Unexpected exception, exiting abnormally", e);System.exit(1);}LOG.info("Exiting normally");System.exit(0);}

調用初始化方法及run方法:

protected void initializeAndRun(String[] args)throws ConfigException, IOException, AdminServerException{QuorumPeerConfig config = new QuorumPeerConfig();if (args.length == 1) {config.parse(args[0]);}// Start and schedule the the purge taskDatadirCleanupManager purgeMgr = new DatadirCleanupManager(config.getDataDir(), config.getDataLogDir(), config.getSnapRetainCount(), config.getPurgeInterval());purgeMgr.start();if (args.length == 1 && config.isDistributed()) {runFromConfig(config);} else {LOG.warn("Either no config or no quorum defined in config, running "+ " in standalone mode");// there is only server in the quorum -- run as standalone ZooKeeperServerMain.main(args);}}

?上述代碼主要分3部分:

?1. 解析配置文件,默認的配置文件為上一級目錄

config/zookeeper.properties或者config/zookeeper.cfg

?

/*** Parse a ZooKeeper configuration file* @param path the patch of the configuration file* @throws ConfigException error processing configuration*/public void parse(String path) throws ConfigException {LOG.info("Reading configuration from: " + path);try {File configFile = (new VerifyingFileFactory.Builder(LOG).warnForRelativePath().failForNonExistingPath().build()).create(path);Properties cfg = new Properties();FileInputStream in = new FileInputStream(configFile);try {cfg.load(in);configFileStr = path;} finally {in.close();}parseProperties(cfg);} catch (IOException e) {throw new ConfigException("Error processing " + path, e);} catch (IllegalArgumentException e) {throw new ConfigException("Error processing " + path, e);} if (dynamicConfigFileStr!=null) {try { Properties dynamicCfg = new Properties();FileInputStream inConfig = new FileInputStream(dynamicConfigFileStr);try {dynamicCfg.load(inConfig);if (dynamicCfg.getProperty("version") != null) {throw new ConfigException("dynamic file shouldn't have version inside");}String version = getVersionFromFilename(dynamicConfigFileStr);// If there isn't any version associated with the filename,// the default version is 0.if (version != null) {dynamicCfg.setProperty("version", version);}} finally {inConfig.close();}setupQuorumPeerConfig(dynamicCfg, false);} catch (IOException e) {throw new ConfigException("Error processing " + dynamicConfigFileStr, e);} catch (IllegalArgumentException e) {throw new ConfigException("Error processing " + dynamicConfigFileStr, e);} File nextDynamicConfigFile = new File(configFileStr + nextDynamicConfigFileSuffix);if (nextDynamicConfigFile.exists()) {try { Properties dynamicConfigNextCfg = new Properties();FileInputStream inConfigNext = new FileInputStream(nextDynamicConfigFile); try {dynamicConfigNextCfg.load(inConfigNext);} finally {inConfigNext.close();}boolean isHierarchical = false;for (Entry<Object, Object> entry : dynamicConfigNextCfg.entrySet()) {String key = entry.getKey().toString().trim(); if (key.startsWith("group") || key.startsWith("weight")) {isHierarchical = true;break;}}lastSeenQuorumVerifier = createQuorumVerifier(dynamicConfigNextCfg, isHierarchical);} catch (IOException e) {LOG.warn("NextQuorumVerifier is initiated to null");}}}}

2. 啟動安排清除任務

// Start and schedule the the purge taskDatadirCleanupManager purgeMgr = new DatadirCleanupManager(config.getDataDir(), config.getDataLogDir(), config.getSnapRetainCount(), config.getPurgeInterval());purgeMgr.start();

調用start方法:

/*** Validates the purge configuration and schedules the purge task. Purge* task keeps the most recent <code>snapRetainCount</code> number of* snapshots and deletes the remaining for every <code>purgeInterval</code>* hour(s).* <p>* <code>purgeInterval</code> of <code>0</code> or* <code>negative integer</code> will not schedule the purge task.* </p>* * @see PurgeTxnLog#purge(File, File, int)*/public void start() {if (PurgeTaskStatus.STARTED == purgeTaskStatus) {LOG.warn("Purge task is already running.");return;}// Don't schedule the purge task with zero or negative purge interval.if (purgeInterval <= 0) {LOG.info("Purge task is not scheduled.");return;} timer = new Timer("PurgeTask", true);TimerTask task = new PurgeTask(dataLogDir, snapDir, snapRetainCount);timer.scheduleAtFixedRate(task, 0, TimeUnit.HOURS.toMillis(purgeInterval));purgeTaskStatus = PurgeTaskStatus.STARTED;}

?從上面代碼可以看到,清除工作啟動了一個定時器timer,PurgeTask繼承實現了TimeTask(一個可以被定時器安排執行一次或者多次的task),PurgeTask的實現如下:

static class PurgeTask extends TimerTask {private File logsDir;private File snapsDir;private int snapRetainCount;public PurgeTask(File dataDir, File snapDir, int count) {logsDir = dataDir;snapsDir = snapDir;snapRetainCount = count;}@Overridepublic void run() {LOG.info("Purge task started.");try {PurgeTxnLog.purge(logsDir, snapsDir, snapRetainCount);} catch (Exception e) {LOG.error("Error occured while purging.", e);}LOG.info("Purge task completed.");}}

調用purge方法:

/*** Purges the snapshot and logs keeping the last num snapshots and the* corresponding logs. If logs are rolling or a new snapshot is created* during this process, these newest N snapshots or any data logs will be* excluded from current purging cycle.** @param dataDir the dir that has the logs* @param snapDir the dir that has the snapshots* @param num the number of snapshots to keep* @throws IOException*/public static void purge(File dataDir, File snapDir, int num) throws IOException {if (num < 3) {throw new IllegalArgumentException(COUNT_ERR_MSG);}FileTxnSnapLog txnLog = new FileTxnSnapLog(dataDir, snapDir);List<File> snaps = txnLog.findNRecentSnapshots(num);retainNRecentSnapshots(txnLog, snaps);}

先獲取日志文件和快照,然后調用retainNRecentSnapshots方法處理:

static void retainNRecentSnapshots(FileTxnSnapLog txnLog, List<File> snaps) {// found any valid recent snapshots?if (snaps.size() == 0)return;File snapShot = snaps.get(snaps.size() -1);final long leastZxidToBeRetain = Util.getZxidFromName(snapShot.getName(), PREFIX_SNAPSHOT);class MyFileFilter implements FileFilter{private final String prefix;MyFileFilter(String prefix){this.prefix=prefix;}public boolean accept(File f){if(!f.getName().startsWith(prefix + "."))return false;long fZxid = Util.getZxidFromName(f.getName(), prefix);if (fZxid >= leastZxidToBeRetain) {return false;}return true;}}// add all non-excluded log filesList<File> files = new ArrayList<File>(Arrays.asList(txnLog.getDataDir().listFiles(new MyFileFilter(PREFIX_LOG))));// add all non-excluded snapshot files to the deletion list files.addAll(Arrays.asList(txnLog.getSnapDir().listFiles(new MyFileFilter(PREFIX_SNAPSHOT))));// remove the old filesfor(File f: files){System.out.println("Removing file: "+DateFormat.getDateTimeInstance().format(f.lastModified())+"\t"+f.getPath());if(!f.delete()){System.err.println("Failed to remove "+f.getPath());}}}

3. 啟動zookeeper 服務器

? ? 3.1 啟動單機

/** Start up the ZooKeeper server.** @param args the configfile or the port datadir [ticktime]*/public static void main(String[] args) {ZooKeeperServerMain main = new ZooKeeperServerMain();try { main.initializeAndRun(args);} catch (IllegalArgumentException e) {LOG.error("Invalid arguments, exiting abnormally", e);LOG.info(USAGE);System.err.println(USAGE);System.exit(2);} catch (ConfigException e) {LOG.error("Invalid config, exiting abnormally", e);System.err.println("Invalid config, exiting abnormally");System.exit(2);} catch (DatadirException e) {LOG.error("Unable to access datadir, exiting abnormally", e);System.err.println("Unable to access datadir, exiting abnormally");System.exit(3);} catch (AdminServerException e) {LOG.error("Unable to start AdminServer, exiting abnormally", e);System.err.println("Unable to start AdminServer, exiting abnormally");System.exit(4);} catch (Exception e) {LOG.error("Unexpected exception, exiting abnormally", e);System.exit(1);}LOG.info("Exiting normally");System.exit(0);}

調用方法:

protected void initializeAndRun(String[] args)throws ConfigException, IOException, AdminServerException{try {ManagedUtil.registerLog4jMBeans();} catch (JMException e) {LOG.warn("Unable to register log4j JMX control", e);}ServerConfig config = new ServerConfig();if (args.length == 1) {config.parse(args[0]);} else {config.parse(args);}runFromConfig(config);}

啟動過程:

/*** Run from a ServerConfig.* @param config ServerConfig to use.* @throws IOException* @throws AdminServerException*/public void runFromConfig(ServerConfig config) throws IOException, AdminServerException {LOG.info("Starting server");FileTxnSnapLog txnLog = null;try {// Note that this thread isn't going to be doing anything else,// so rather than spawning another thread, we will just call// run() in this thread.// create a file logger url from the command line argstxnLog = new FileTxnSnapLog(config.dataLogDir, config.dataDir);ZooKeeperServer zkServer = new ZooKeeperServer( txnLog,config.tickTime, config.minSessionTimeout, config.maxSessionTimeout, null);// Start Admin serveradminServer = AdminServerFactory.createAdminServer();adminServer.setZooKeeperServer(zkServer);adminServer.start();boolean needStartZKServer = true;if (config.getClientPortAddress() != null) {cnxnFactory = ServerCnxnFactory.createFactory();cnxnFactory.configure(config.getClientPortAddress(), config.getMaxClientCnxns(), false);cnxnFactory.startup(zkServer);// zkServer has been started. So we don't need to start it again in secureCnxnFactory.needStartZKServer = false;}if (config.getSecureClientPortAddress() != null) {secureCnxnFactory = ServerCnxnFactory.createFactory();secureCnxnFactory.configure(config.getSecureClientPortAddress(), config.getMaxClientCnxns(), true);secureCnxnFactory.startup(zkServer, needStartZKServer);}containerManager = new ContainerManager(zkServer.getZKDatabase(), zkServer.firstProcessor,Integer.getInteger("znode.container.checkIntervalMs", (int) TimeUnit.MINUTES.toMillis(1)),Integer.getInteger("znode.container.maxPerMinute", 10000)); containerManager.start();if (cnxnFactory != null) {cnxnFactory.join();}if (secureCnxnFactory != null) {secureCnxnFactory.join();}if (zkServer.isRunning()) {zkServer.shutdown();}} catch (InterruptedException e) {// warn, but generally this is okLOG.warn("Server interrupted", e);} finally {if (txnLog != null) {txnLog.close();}}} cnxnFactory.startup(zkServer);[NettyServerCnxnFactory] @Overridepublic void startup(ZooKeeperServer zks, boolean startServer)throws IOException, InterruptedException {start();setZooKeeperServer(zks);if (startServer) {zks.startdata(); zks.startup();}} public synchronized void startup() {if (sessionTracker == null) {createSessionTracker();}startSessionTracker();setupRequestProcessors();registerJMX();state = State.RUNNING;notifyAll();}protected void setupRequestProcessors() {RequestProcessor finalProcessor = new FinalRequestProcessor(this);RequestProcessor syncProcessor = new SyncRequestProcessor(this,finalProcessor);((SyncRequestProcessor)syncProcessor).start();firstProcessor = new PrepRequestProcessor(this, syncProcessor);((PrepRequestProcessor)firstProcessor).start();}

3.2 集群啟動

public void runFromConfig(QuorumPeerConfig config) throws IOException, AdminServerException {try {ManagedUtil.registerLog4jMBeans();} catch (JMException e) {LOG.warn("Unable to register log4j JMX control", e);}LOG.info("Starting quorum peer");try {ServerCnxnFactory cnxnFactory = null;ServerCnxnFactory secureCnxnFactory = null;if (config.getClientPortAddress() != null) {cnxnFactory = ServerCnxnFactory.createFactory();cnxnFactory.configure(config.getClientPortAddress(),config.getMaxClientCnxns(),false);}if (config.getSecureClientPortAddress() != null) {secureCnxnFactory = ServerCnxnFactory.createFactory();secureCnxnFactory.configure(config.getSecureClientPortAddress(),config.getMaxClientCnxns(),true);}quorumPeer = new QuorumPeer();quorumPeer.setTxnFactory(new FileTxnSnapLog(config.getDataLogDir(),config.getDataDir()));quorumPeer.enableLocalSessions(config.areLocalSessionsEnabled());quorumPeer.enableLocalSessionsUpgrading(config.isLocalSessionsUpgradingEnabled());//quorumPeer.setQuorumPeers(config.getAllMembers()); quorumPeer.setElectionType(config.getElectionAlg());quorumPeer.setMyid(config.getServerId());quorumPeer.setTickTime(config.getTickTime());quorumPeer.setMinSessionTimeout(config.getMinSessionTimeout());quorumPeer.setMaxSessionTimeout(config.getMaxSessionTimeout());quorumPeer.setInitLimit(config.getInitLimit());quorumPeer.setSyncLimit(config.getSyncLimit());quorumPeer.setConfigFileName(config.getConfigFilename());quorumPeer.setZKDatabase(new ZKDatabase(quorumPeer.getTxnFactory()));quorumPeer.setQuorumVerifier(config.getQuorumVerifier(), false);if (config.getLastSeenQuorumVerifier()!=null) {quorumPeer.setLastSeenQuorumVerifier(config.getLastSeenQuorumVerifier(), false);}quorumPeer.initConfigInZKDatabase();quorumPeer.setCnxnFactory(cnxnFactory);quorumPeer.setSecureCnxnFactory(secureCnxnFactory);quorumPeer.setLearnerType(config.getPeerType());quorumPeer.setSyncEnabled(config.getSyncEnabled());quorumPeer.setQuorumListenOnAllIPs(config.getQuorumListenOnAllIPs());quorumPeer.start();quorumPeer.join();} catch (InterruptedException e) {// warn, but generally this is okLOG.warn("Quorum Peer interrupted", e);}}

從上述代碼可以看出,QuorumPeer的start()方法和join()方法是主流程。

QuorumPeer繼承了ZooKeeperThread,ZooKeeperThread繼承自Thread,故QuorumPeer間接繼承了Thread。

@Overridepublic synchronized void start() {if (!getView().containsKey(myid)) {throw new RuntimeException("My id " + myid + " not in the peer list");}loadDataBase();startServerCnxnFactory();try {adminServer.start();} catch (AdminServerException e) {LOG.warn("Problem starting AdminServer", e);System.out.println(e);}startLeaderElection();super.start();}

3.2.1. 啟動時先從內存數據庫中恢復數據

private void loadDataBase() {try { zkDb.loadDataBase();// load the epochslong lastProcessedZxid = zkDb.getDataTree().lastProcessedZxid;long epochOfZxid = ZxidUtils.getEpochFromZxid(lastProcessedZxid);try {currentEpoch = readLongFromFile(CURRENT_EPOCH_FILENAME);} catch(FileNotFoundException e) {// pick a reasonable epoch number// this should only happen once when moving to a// new code versioncurrentEpoch = epochOfZxid;LOG.info(CURRENT_EPOCH_FILENAME+ " not found! Creating with a reasonable default of {}. This should only happen when you are upgrading your installation",currentEpoch);writeLongToFile(CURRENT_EPOCH_FILENAME, currentEpoch);}if (epochOfZxid > currentEpoch) {throw new IOException("The current epoch, " + ZxidUtils.zxidToString(currentEpoch) + ", is older than the last zxid, " + lastProcessedZxid);}try {acceptedEpoch = readLongFromFile(ACCEPTED_EPOCH_FILENAME);} catch(FileNotFoundException e) {// pick a reasonable epoch number// this should only happen once when moving to a// new code versionacceptedEpoch = epochOfZxid;LOG.info(ACCEPTED_EPOCH_FILENAME+ " not found! Creating with a reasonable default of {}. This should only happen when you are upgrading your installation",acceptedEpoch);writeLongToFile(ACCEPTED_EPOCH_FILENAME, acceptedEpoch);}if (acceptedEpoch < currentEpoch) {throw new IOException("The accepted epoch, " + ZxidUtils.zxidToString(acceptedEpoch) + " is less than the current epoch, " + ZxidUtils.zxidToString(currentEpoch));}} catch(IOException ie) {LOG.error("Unable to load database on disk", ie);throw new RuntimeException("Unable to run quorum server ", ie);}}

調用

/*** load the database from the disk onto memory and also add* the transactions to the committedlog in memory.* @return the last valid zxid on disk* @throws IOException*/public long loadDataBase() throws IOException {PlayBackListener listener=new PlayBackListener(){public void onTxnLoaded(TxnHeader hdr,Record txn){Request r = new Request(0, hdr.getCxid(),hdr.getType(), hdr, txn, hdr.getZxid());addCommittedProposal(r);}};long zxid = snapLog.restore(dataTree,sessionsWithTimeouts,listener);initialized = true;return zxid;}/*** maintains a list of last <i>committedLog</i>* or so committed requests. This is used for* fast follower synchronization.* @param request committed request*/public void addCommittedProposal(Request request) {WriteLock wl = logLock.writeLock();try {wl.lock();if (committedLog.size() > commitLogCount) {committedLog.removeFirst();minCommittedLog = committedLog.getFirst().packet.getZxid();}if (committedLog.isEmpty()) {minCommittedLog = request.zxid;maxCommittedLog = request.zxid;}ByteArrayOutputStream baos = new ByteArrayOutputStream();BinaryOutputArchive boa = BinaryOutputArchive.getArchive(baos);try {request.getHdr().serialize(boa, "hdr");if (request.getTxn() != null) {request.getTxn().serialize(boa, "txn");}baos.close();} catch (IOException e) {LOG.error("This really should be impossible", e);}QuorumPacket pp = new QuorumPacket(Leader.PROPOSAL, request.zxid,baos.toByteArray(), null);Proposal p = new Proposal();p.packet = pp;p.request = request;committedLog.add(p);maxCommittedLog = p.packet.getZxid();} finally {wl.unlock();}}

3.2.2 啟動NettyServerCnxnFactory綁定服務

@Overridepublic void start() {LOG.info("binding to port " + localAddress);parentChannel = bootstrap.bind(localAddress);}

3.2.3 選舉算法

synchronized public void startLeaderElection() {try {if (getPeerState() == ServerState.LOOKING) {currentVote = new Vote(myid, getLastLoggedZxid(), getCurrentEpoch());}} catch(IOException e) {RuntimeException re = new RuntimeException(e.getMessage());re.setStackTrace(e.getStackTrace());throw re;}// if (!getView().containsKey(myid)) {// throw new RuntimeException("My id " + myid + " not in the peer list");//}if (electionType == 0) {try {udpSocket = new DatagramSocket(myQuorumAddr.getPort());responder = new ResponderThread();responder.start();} catch (SocketException e) {throw new RuntimeException(e);}}this.electionAlg = createElectionAlgorithm(electionType);}

調用

@SuppressWarnings("deprecation")protected Election createElectionAlgorithm(int electionAlgorithm){Election le=null;//TODO: use a factory rather than a switchswitch (electionAlgorithm) {case 0:le = new LeaderElection(this);break;case 1:le = new AuthFastLeaderElection(this);break;case 2:le = new AuthFastLeaderElection(this, true);break;case 3:qcm = new QuorumCnxManager(this);QuorumCnxManager.Listener listener = qcm.listener;if(listener != null){listener.start(); FastLeaderElection fle = new FastLeaderElection(this, qcm);fle.start();le = fle;} else {LOG.error("Null listener when initializing cnx manager");}break;default:assert false;}return le;}

調用選舉方法:

/*** Starts a new round of leader election. Whenever our QuorumPeer* changes its state to LOOKING, this method is invoked, and it* sends notifications to all other peers.*/public Vote lookForLeader() throws InterruptedException {try {self.jmxLeaderElectionBean = new LeaderElectionBean();MBeanRegistry.getInstance().register(self.jmxLeaderElectionBean, self.jmxLocalPeerBean);} catch (Exception e) {LOG.warn("Failed to register with JMX", e);self.jmxLeaderElectionBean = null;}if (self.start_fle == 0) {self.start_fle = Time.currentElapsedTime();}try {HashMap<Long, Vote> recvset = new HashMap<Long, Vote>();HashMap<Long, Vote> outofelection = new HashMap<Long, Vote>();int notTimeout = finalizeWait;synchronized(this){logicalclock.incrementAndGet();updateProposal(getInitId(), getInitLastLoggedZxid(), getPeerEpoch());}LOG.info("New election. My id = " + self.getId() +", proposed zxid=0x" + Long.toHexString(proposedZxid));sendNotifications();/** Loop in which we exchange notifications until we find a leader*/while ((self.getPeerState() == ServerState.LOOKING) &&(!stop)){/** Remove next notification from queue, times out after 2 times* the termination time*/Notification n = recvqueue.poll(notTimeout,TimeUnit.MILLISECONDS);/** Sends more notifications if haven't received enough.* Otherwise processes new notification.*/if(n == null){if(manager.haveDelivered()){sendNotifications();} else {manager.connectAll();}/** Exponential backoff*/int tmpTimeOut = notTimeout*2;notTimeout = (tmpTimeOut < maxNotificationInterval?tmpTimeOut : maxNotificationInterval);LOG.info("Notification time out: " + notTimeout);} else if (self.getCurrentAndNextConfigVoters().contains(n.sid)) {/** Only proceed if the vote comes from a replica in the current or next* voting view.*/switch (n.state) {case LOOKING:// If notification > current, replace and send messages outif (n.electionEpoch > logicalclock.get()) {logicalclock.set(n.electionEpoch);recvset.clear();if(totalOrderPredicate(n.leader, n.zxid, n.peerEpoch,getInitId(), getInitLastLoggedZxid(), getPeerEpoch())) {updateProposal(n.leader, n.zxid, n.peerEpoch);} else {updateProposal(getInitId(),getInitLastLoggedZxid(),getPeerEpoch());}sendNotifications();} else if (n.electionEpoch < logicalclock.get()) {if(LOG.isDebugEnabled()){LOG.debug("Notification election epoch is smaller than logicalclock. n.electionEpoch = 0x"+ Long.toHexString(n.electionEpoch)+ ", logicalclock=0x" + Long.toHexString(logicalclock.get()));}break;} else if (totalOrderPredicate(n.leader, n.zxid, n.peerEpoch,proposedLeader, proposedZxid, proposedEpoch)) {updateProposal(n.leader, n.zxid, n.peerEpoch);sendNotifications();}if(LOG.isDebugEnabled()){LOG.debug("Adding vote: from=" + n.sid +", proposed leader=" + n.leader +", proposed zxid=0x" + Long.toHexString(n.zxid) +", proposed election epoch=0x" + Long.toHexString(n.electionEpoch));}recvset.put(n.sid, new Vote(n.leader, n.zxid, n.electionEpoch, n.peerEpoch));if (termPredicate(recvset,new Vote(proposedLeader, proposedZxid,logicalclock.get(), proposedEpoch))) {// Verify if there is any change in the proposed leaderwhile((n = recvqueue.poll(finalizeWait,TimeUnit.MILLISECONDS)) != null){if(totalOrderPredicate(n.leader, n.zxid, n.peerEpoch,proposedLeader, proposedZxid, proposedEpoch)){recvqueue.put(n);break;}}/** This predicate is true once we don't read any new* relevant message from the reception queue*/if (n == null) {self.setPeerState((proposedLeader == self.getId()) ?ServerState.LEADING: learningState());Vote endVote = new Vote(proposedLeader,proposedZxid, proposedEpoch);leaveInstance(endVote);return endVote;}}break;case OBSERVING:LOG.debug("Notification from observer: " + n.sid);break;case FOLLOWING:case LEADING:/** Consider all notifications from the same epoch* together.*/if(n.electionEpoch == logicalclock.get()){recvset.put(n.sid, new Vote(n.leader, n.zxid, n.electionEpoch, n.peerEpoch));if(termPredicate(recvset, new Vote(n.leader,n.zxid, n.electionEpoch, n.peerEpoch, n.state))&& checkLeader(outofelection, n.leader, n.electionEpoch)) {self.setPeerState((n.leader == self.getId()) ?ServerState.LEADING: learningState());Vote endVote = new Vote(n.leader, n.zxid, n.peerEpoch);leaveInstance(endVote);return endVote;}}/** Before joining an established ensemble, verify that* a majority are following the same leader.* Only peer epoch is used to check that the votes come* from the same ensemble. This is because there is at* least one corner case in which the ensemble can be* created with inconsistent zxid and election epoch* info. However, given that only one ensemble can be* running at a single point in time and that each * epoch is used only once, using only the epoch to * compare the votes is sufficient.* * @see https://issues.apache.org/jira/browse/ZOOKEEPER-1732*/outofelection.put(n.sid, new Vote(n.leader, IGNOREVALUE, IGNOREVALUE, n.peerEpoch, n.state));if (termPredicate(outofelection, new Vote(n.leader,IGNOREVALUE, IGNOREVALUE, n.peerEpoch, n.state))&& checkLeader(outofelection, n.leader, IGNOREVALUE)) {synchronized(this){logicalclock.set(n.electionEpoch);self.setPeerState((n.leader == self.getId()) ?ServerState.LEADING: learningState());}Vote endVote = new Vote(n.leader, n.zxid, n.peerEpoch);leaveInstance(endVote);return endVote;}break;default:LOG.warn("Notification state unrecoginized: " + n.state+ " (n.state), " + n.sid + " (n.sid)");break;}} else {LOG.warn("Ignoring notification from non-cluster member " + n.sid);}}return null;} finally {try {if(self.jmxLeaderElectionBean != null){MBeanRegistry.getInstance().unregister(self.jmxLeaderElectionBean);}} catch (Exception e) {LOG.warn("Failed to unregister with JMX", e);}self.jmxLeaderElectionBean = null;}}

4. 小結

  本文先介紹了zookeeper開源分布式協作系統及其特點、應用場景,然后根據zookeeper的啟動方式,找到zookeeper的入口。在入口方法中,單機啟動使用ZooKeeperServerMain,最終調用ZookeeperServer的startup()方法來RequestProcessor;集群啟動時調用QuorumPeer的start方法,接著也是調用ZookeeperServer的startup()方法來RequestProcessor,最后調用選舉算法選出leader。

?

參考文獻:

【1】http://zookeeper.apache.org/doc/r3.4.6/zookeeperOver.html

?【2】http://zookeeper.apache.org/doc/r3.4.6/zookeeperStarted.html

轉載于:https://www.cnblogs.com/davidwang456/p/4966465.html

總結

以上是生活随笔為你收集整理的zookeeper源码分析之一服务端启动过程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

中文字幕av日韩精品一区二区 | 欧美大屁股xxxxhd黑色 | 在线观看欧美一区二区三区 | 性生交大片免费看l | 狠狠cao日日穞夜夜穞av | 天堂久久天堂av色综合 | 久久人人爽人人人人片 | 国产av无码专区亚洲awww | 77777熟女视频在线观看 а天堂中文在线官网 | 国产色视频一区二区三区 | 131美女爱做视频 | 男女猛烈xx00免费视频试看 | 久久国产劲爆∧v内射 | 国产在线精品一区二区三区直播 | 国产精品久久久av久久久 | 自拍偷自拍亚洲精品被多人伦好爽 | 国产亚洲精品久久久久久大师 | 久久国产36精品色熟妇 | 亚洲色大成网站www | 蜜桃视频插满18在线观看 | 99久久久无码国产aaa精品 | 国产尤物精品视频 | 在线观看国产一区二区三区 | 欧美一区二区三区视频在线观看 | 日日橹狠狠爱欧美视频 | 久久99精品久久久久婷婷 | 久久人人爽人人爽人人片av高清 | 女人被男人爽到呻吟的视频 | 麻豆果冻传媒2021精品传媒一区下载 | 亚洲一区二区观看播放 | 亚洲乱码国产乱码精品精 | 欧美freesex黑人又粗又大 | 国内精品人妻无码久久久影院 | 西西人体www44rt大胆高清 | 无码人妻精品一区二区三区下载 | 水蜜桃亚洲一二三四在线 | 撕开奶罩揉吮奶头视频 | 亚洲毛片av日韩av无码 | 日本熟妇大屁股人妻 | 久久久久av无码免费网 | 牲欲强的熟妇农村老妇女视频 | 亚洲日本一区二区三区在线 | 中文字幕久久久久人妻 | 亚洲日本va午夜在线电影 | 国产精品久久久午夜夜伦鲁鲁 | 久久亚洲日韩精品一区二区三区 | 黑人粗大猛烈进出高潮视频 | 国产色在线 | 国产 | 亚洲日本va中文字幕 | 无码毛片视频一区二区本码 | 国产精品久久久午夜夜伦鲁鲁 | 久久综合给久久狠狠97色 | 国产真实夫妇视频 | 天天av天天av天天透 | 国产莉萝无码av在线播放 | 亚洲欧美精品aaaaaa片 | 色欲久久久天天天综合网精品 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 奇米影视888欧美在线观看 | 99久久精品国产一区二区蜜芽 | 超碰97人人做人人爱少妇 | 97夜夜澡人人双人人人喊 | 国产真人无遮挡作爱免费视频 | 纯爱无遮挡h肉动漫在线播放 | 精品国产麻豆免费人成网站 | 国产国产精品人在线视 | 国内精品九九久久久精品 | 午夜福利不卡在线视频 | 一本久道久久综合婷婷五月 | 欧美乱妇无乱码大黄a片 | 少女韩国电视剧在线观看完整 | 无码国产乱人伦偷精品视频 | 久久天天躁狠狠躁夜夜免费观看 | 免费人成网站视频在线观看 | 国产乱子伦视频在线播放 | 4hu四虎永久在线观看 | 国产艳妇av在线观看果冻传媒 | 国产av人人夜夜澡人人爽麻豆 | 99久久精品午夜一区二区 | 亚洲色大成网站www | 欧美猛少妇色xxxxx | 亚洲日韩av一区二区三区四区 | 国产成人综合色在线观看网站 | 午夜精品一区二区三区的区别 | 小泽玛莉亚一区二区视频在线 | 欧美日韩综合一区二区三区 | 少妇愉情理伦片bd | 欧美丰满老熟妇xxxxx性 | yw尤物av无码国产在线观看 | 久久综合狠狠综合久久综合88 | 无码毛片视频一区二区本码 | 激情五月综合色婷婷一区二区 | 日本丰满护士爆乳xxxx | 少妇久久久久久人妻无码 | 最新国产乱人伦偷精品免费网站 | 国内精品久久久久久中文字幕 | 强奷人妻日本中文字幕 | 老熟女重囗味hdxx69 | 97久久超碰中文字幕 | 未满成年国产在线观看 | 亚洲s码欧洲m码国产av | 久久久久久久久蜜桃 | 国产无av码在线观看 | 娇妻被黑人粗大高潮白浆 | 国产精品久久久久7777 | 最近中文2019字幕第二页 | 精品厕所偷拍各类美女tp嘘嘘 | 日韩精品成人一区二区三区 | 天天摸天天碰天天添 | 中文字幕无码av激情不卡 | 亚洲人成网站免费播放 | 99麻豆久久久国产精品免费 | 国产精品99久久精品爆乳 | 国产激情无码一区二区 | 少妇被黑人到高潮喷出白浆 | 天天做天天爱天天爽综合网 | 国产香蕉尹人综合在线观看 | 欧美自拍另类欧美综合图片区 | 最新版天堂资源中文官网 | 99久久婷婷国产综合精品青草免费 | 人人妻人人澡人人爽人人精品 | 久久久www成人免费毛片 | 国产无遮挡又黄又爽免费视频 | 人妻无码αv中文字幕久久琪琪布 | 漂亮人妻洗澡被公强 日日躁 | 青青青手机频在线观看 | 久久久久免费看成人影片 | 日韩在线不卡免费视频一区 | 少妇激情av一区二区 | 国产亚洲日韩欧美另类第八页 | 亚洲日韩一区二区三区 | 国产精品怡红院永久免费 | 成 人影片 免费观看 | 国产97人人超碰caoprom | 亚洲а∨天堂久久精品2021 | 国产国语老龄妇女a片 | 无码免费一区二区三区 | 日本精品人妻无码免费大全 | 精品乱子伦一区二区三区 | 久久久www成人免费毛片 | 少妇无码av无码专区在线观看 | 国产乱子伦视频在线播放 | 超碰97人人做人人爱少妇 | 天天躁日日躁狠狠躁免费麻豆 | 性欧美疯狂xxxxbbbb | 国产精品久久久一区二区三区 | 国产精品国产自线拍免费软件 | 国内综合精品午夜久久资源 | 国产va免费精品观看 | 黄网在线观看免费网站 | 亚洲成a人片在线观看无码 | 无码av最新清无码专区吞精 | 日日躁夜夜躁狠狠躁 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 亚洲色欲色欲欲www在线 | 无码人妻av免费一区二区三区 | 国产美女精品一区二区三区 | 熟女俱乐部五十路六十路av | 高中生自慰www网站 | 超碰97人人做人人爱少妇 | 成人欧美一区二区三区黑人免费 | 成人欧美一区二区三区黑人 | 中文字幕av伊人av无码av | 老熟女重囗味hdxx69 | 成年美女黄网站色大免费视频 | 久久精品国产99久久6动漫 | 成人欧美一区二区三区 | av无码久久久久不卡免费网站 | 5858s亚洲色大成网站www | www国产精品内射老师 | 国产艳妇av在线观看果冻传媒 | 99久久精品国产一区二区蜜芽 | 国产精品嫩草久久久久 | 蜜臀av无码人妻精品 | 蜜桃臀无码内射一区二区三区 | 国产在线aaa片一区二区99 | 最新国产乱人伦偷精品免费网站 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 无遮挡国产高潮视频免费观看 | 中文字幕乱码中文乱码51精品 | 欧美一区二区三区视频在线观看 | 国内精品人妻无码久久久影院蜜桃 | 国产亚洲精品久久久久久国模美 | 色综合久久中文娱乐网 | 国产另类ts人妖一区二区 | 日韩精品a片一区二区三区妖精 | 亚洲s码欧洲m码国产av | 国产精品久久福利网站 | 97无码免费人妻超级碰碰夜夜 | 亲嘴扒胸摸屁股激烈网站 | 国产成人综合在线女婷五月99播放 | 亚洲国产精品一区二区美利坚 | 国产精品久久久久9999小说 | 精品国产av色一区二区深夜久久 | 亚洲精品国产精品乱码不卡 | 日本爽爽爽爽爽爽在线观看免 | 波多野结衣av一区二区全免费观看 | 国产av人人夜夜澡人人爽麻豆 | 久久精品中文闷骚内射 | 久久99精品国产.久久久久 | 国产精品第一国产精品 | 日韩在线不卡免费视频一区 | 久久久久久久女国产乱让韩 | 国产精品18久久久久久麻辣 | 欧美野外疯狂做受xxxx高潮 | 97精品人妻一区二区三区香蕉 | 国产亚洲精品久久久久久 | 亚洲精品国偷拍自产在线观看蜜桃 | 樱花草在线社区www | 亚洲精品美女久久久久久久 | 一本无码人妻在中文字幕免费 | 亚洲日本va午夜在线电影 | 亚洲国产午夜精品理论片 | 亚洲欧美精品伊人久久 | 欧美丰满熟妇xxxx | 久久97精品久久久久久久不卡 | 色欲av亚洲一区无码少妇 | 免费无码一区二区三区蜜桃大 | 漂亮人妻洗澡被公强 日日躁 | 亚洲人成影院在线无码按摩店 | 波多野结衣aⅴ在线 | 成人精品天堂一区二区三区 | 亚欧洲精品在线视频免费观看 | 精品无码一区二区三区爱欲 | 中文字幕乱码人妻无码久久 | 亚洲 a v无 码免 费 成 人 a v | 中文字幕无码视频专区 | 久久99精品久久久久婷婷 | 天干天干啦夜天干天2017 | 亚洲一区二区三区偷拍女厕 | 国产热a欧美热a在线视频 | 欧美人与禽猛交狂配 | 内射爽无广熟女亚洲 | 无码成人精品区在线观看 | 水蜜桃色314在线观看 | 国产精品-区区久久久狼 | aⅴ亚洲 日韩 色 图网站 播放 | √8天堂资源地址中文在线 | 欧美 日韩 人妻 高清 中文 | 麻豆国产人妻欲求不满 | 欧美激情一区二区三区成人 | 午夜无码人妻av大片色欲 | 无码一区二区三区在线观看 | 久久精品人人做人人综合 | 国产在线无码精品电影网 | 亚洲爆乳大丰满无码专区 | 又大又紧又粉嫩18p少妇 | 亚洲精品国产精品乱码不卡 | 婷婷五月综合激情中文字幕 | 国产人妻精品午夜福利免费 | 亚洲大尺度无码无码专区 | 丰满护士巨好爽好大乳 | 在线а√天堂中文官网 | 亚洲乱码中文字幕在线 | 亚洲日韩av一区二区三区中文 | 人妻无码久久精品人妻 | 久久无码人妻影院 | 国产精品美女久久久久av爽李琼 | 性色av无码免费一区二区三区 | 久久综合网欧美色妞网 | 1000部夫妻午夜免费 | 午夜性刺激在线视频免费 | 欧美xxxx黑人又粗又长 | 在线观看国产午夜福利片 | 未满小14洗澡无码视频网站 | 亚洲人成无码网www | 午夜成人1000部免费视频 | 中文亚洲成a人片在线观看 | 日本饥渴人妻欲求不满 | 性啪啪chinese东北女人 | 免费看少妇作爱视频 | 日本丰满熟妇videos | 99精品视频在线观看免费 | 在线精品国产一区二区三区 | 成人精品视频一区二区三区尤物 | 国产av剧情md精品麻豆 | 国产精品久久久久久久9999 | 国产精品久久久一区二区三区 | 欧美国产日韩亚洲中文 | 成人无码精品1区2区3区免费看 | 欧美精品在线观看 | 欧美人与动性行为视频 | 久久午夜无码鲁丝片午夜精品 | 亚洲精品午夜无码电影网 | 无套内谢的新婚少妇国语播放 | 欧美乱妇无乱码大黄a片 | 色综合久久久久综合一本到桃花网 | 欧美熟妇另类久久久久久多毛 | 女人被男人爽到呻吟的视频 | 一本无码人妻在中文字幕免费 | 国产女主播喷水视频在线观看 | 男人扒开女人内裤强吻桶进去 | 人妻少妇精品视频专区 | 97人妻精品一区二区三区 | 激情国产av做激情国产爱 | 亚洲高清偷拍一区二区三区 | 国产片av国语在线观看 | 无码成人精品区在线观看 | 国产在热线精品视频 | 2019午夜福利不卡片在线 | 国产精品怡红院永久免费 | 国产性生大片免费观看性 | 久久亚洲中文字幕无码 | 免费中文字幕日韩欧美 | 99久久久无码国产精品免费 | 亚洲熟妇色xxxxx亚洲 | 久久综合网欧美色妞网 | 精品久久久无码中文字幕 | 亚洲自偷自偷在线制服 | 久9re热视频这里只有精品 | 色婷婷av一区二区三区之红樱桃 | 97夜夜澡人人双人人人喊 | 日本在线高清不卡免费播放 | 大地资源网第二页免费观看 | 久久久精品国产sm最大网站 | 欧美老妇与禽交 | 国产人妻久久精品二区三区老狼 | 7777奇米四色成人眼影 | 婷婷综合久久中文字幕蜜桃三电影 | 亚洲中文字幕在线观看 | 国产精品内射视频免费 | 久久99精品国产麻豆蜜芽 | 男女作爱免费网站 | 人妻体内射精一区二区三四 | 色偷偷人人澡人人爽人人模 | 99在线 | 亚洲 | 对白脏话肉麻粗话av | 久久综合狠狠综合久久综合88 | 亚洲国产成人av在线观看 | 日韩少妇白浆无码系列 | 亚洲成a人片在线观看无码 | 欧美真人作爱免费视频 | 中文无码成人免费视频在线观看 | 无码帝国www无码专区色综合 | 7777奇米四色成人眼影 | 成人精品一区二区三区中文字幕 | 午夜无码区在线观看 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 精品无码一区二区三区的天堂 | 亚洲人亚洲人成电影网站色 | 色狠狠av一区二区三区 | 帮老师解开蕾丝奶罩吸乳网站 | 日日摸日日碰夜夜爽av | 国产精品无码久久av | 久久午夜无码鲁丝片 | 日本大香伊一区二区三区 | 荫蒂添的好舒服视频囗交 | 麻豆国产97在线 | 欧洲 | 人妻少妇精品无码专区动漫 | 久久综合激激的五月天 | 中文字幕日产无线码一区 | 国产成人无码a区在线观看视频app | 国产免费久久精品国产传媒 | 国产精品内射视频免费 | 一二三四社区在线中文视频 | 久久久www成人免费毛片 | 亚洲综合在线一区二区三区 | 高潮毛片无遮挡高清免费视频 | 久久视频在线观看精品 | 一本精品99久久精品77 | 亚洲の无码国产の无码步美 | 欧美三级a做爰在线观看 | 正在播放老肥熟妇露脸 | 亚洲乱码日产精品bd | 欧美日韩视频无码一区二区三 | 国产成人综合美国十次 | 亚洲午夜无码久久 | 亚洲国产欧美日韩精品一区二区三区 | 国模大胆一区二区三区 | 久久久久免费精品国产 | 一区二区三区乱码在线 | 欧洲 | 亚洲精品久久久久中文第一幕 | 欧美freesex黑人又粗又大 | 成人无码精品一区二区三区 | 国产精品毛多多水多 | 无码免费一区二区三区 | 日本xxxx色视频在线观看免费 | 亚洲爆乳精品无码一区二区三区 | 夫妻免费无码v看片 | 成人精品天堂一区二区三区 | 中文字幕乱码中文乱码51精品 | 亚洲日本一区二区三区在线 | 久久久久久a亚洲欧洲av冫 | 国产精品欧美成人 | 国产亚洲精品久久久久久久久动漫 | 丰满肥臀大屁股熟妇激情视频 | 成人欧美一区二区三区黑人免费 | 熟妇女人妻丰满少妇中文字幕 | 欧美日韩视频无码一区二区三 | 国产成人亚洲综合无码 | 综合网日日天干夜夜久久 | 日本爽爽爽爽爽爽在线观看免 | 131美女爱做视频 | 亚洲高清偷拍一区二区三区 | 久久久亚洲欧洲日产国码αv | 国产精品美女久久久久av爽李琼 | 成人无码视频在线观看网站 | 超碰97人人做人人爱少妇 | 国产精品资源一区二区 | 欧美熟妇另类久久久久久多毛 | 少妇性l交大片欧洲热妇乱xxx | 国产精品久久久av久久久 | 露脸叫床粗话东北少妇 | 激情国产av做激情国产爱 | 精品aⅴ一区二区三区 | 欧美黑人巨大xxxxx | 久久国产精品偷任你爽任你 | 欧美国产亚洲日韩在线二区 | 欧美乱妇无乱码大黄a片 | 国产香蕉97碰碰久久人人 | 中文字幕日产无线码一区 | 午夜时刻免费入口 | 午夜精品一区二区三区在线观看 | 国产成人久久精品流白浆 | 久久综合网欧美色妞网 | 国产香蕉97碰碰久久人人 | 亚洲人成人无码网www国产 | 亚洲欧美精品伊人久久 | 日日摸夜夜摸狠狠摸婷婷 | 一本精品99久久精品77 | 激情内射亚州一区二区三区爱妻 | 国产 精品 自在自线 | 性做久久久久久久免费看 | 国产sm调教视频在线观看 | 人人妻人人澡人人爽欧美一区 | 色婷婷香蕉在线一区二区 | 亚洲爆乳大丰满无码专区 | 丝袜美腿亚洲一区二区 | 日本乱人伦片中文三区 | 国产无套内射久久久国产 | 日日摸天天摸爽爽狠狠97 | 亚洲欧洲中文日韩av乱码 | 亚洲一区二区三区偷拍女厕 | 久久久久久久久蜜桃 | 东北女人啪啪对白 | 国产另类ts人妖一区二区 | 中文字幕乱码中文乱码51精品 | 国产亲子乱弄免费视频 | 97夜夜澡人人爽人人喊中国片 | 内射后入在线观看一区 | 国产亚洲视频中文字幕97精品 | 国产精品-区区久久久狼 | 亚洲s色大片在线观看 | 一本久道高清无码视频 | 国产综合久久久久鬼色 | 九九热爱视频精品 | 亚洲精品久久久久久一区二区 | www国产精品内射老师 | 亚洲无人区一区二区三区 | 久久国语露脸国产精品电影 | 国产成人无码av片在线观看不卡 | 久久精品国产精品国产精品污 | 亚洲va中文字幕无码久久不卡 | 午夜丰满少妇性开放视频 | 最新国产麻豆aⅴ精品无码 | 特级做a爰片毛片免费69 | 窝窝午夜理论片影院 | 无码一区二区三区在线观看 | 成人无码视频免费播放 | 男人和女人高潮免费网站 | 无套内谢的新婚少妇国语播放 | 色婷婷香蕉在线一区二区 | 伊人久久大香线蕉av一区二区 | 亚洲精品午夜无码电影网 | 午夜无码人妻av大片色欲 | 国产成人一区二区三区在线观看 | 国产av一区二区精品久久凹凸 | 日韩av无码中文无码电影 | 欧美三级不卡在线观看 | 精品久久久久久人妻无码中文字幕 | 人妻天天爽夜夜爽一区二区 | 乱人伦中文视频在线观看 | 黑人巨大精品欧美黑寡妇 | 国产精品亚洲五月天高清 | 日韩人妻少妇一区二区三区 | 国产精品久久久一区二区三区 | 亚洲s码欧洲m码国产av | 成人无码精品一区二区三区 | 国产精品久久久久7777 | 欧美真人作爱免费视频 | 亚洲中文无码av永久不收费 | 国产肉丝袜在线观看 | 好屌草这里只有精品 | 亚洲国产av精品一区二区蜜芽 | 帮老师解开蕾丝奶罩吸乳网站 | 香港三级日本三级妇三级 | 粉嫩少妇内射浓精videos | 国产成人无码午夜视频在线观看 | 久久精品99久久香蕉国产色戒 | 97夜夜澡人人双人人人喊 | 性色欲情网站iwww九文堂 | 自拍偷自拍亚洲精品被多人伦好爽 | 日韩在线不卡免费视频一区 | 国産精品久久久久久久 | 国产午夜视频在线观看 | 在线а√天堂中文官网 | 丰满肥臀大屁股熟妇激情视频 | 午夜精品一区二区三区在线观看 | 精品无码一区二区三区爱欲 | 无码一区二区三区在线 | 亚洲爆乳大丰满无码专区 | 高清国产亚洲精品自在久久 | 国产无遮挡又黄又爽免费视频 | 自拍偷自拍亚洲精品10p | 日日天干夜夜狠狠爱 | 老熟妇仑乱视频一区二区 | 国产明星裸体无码xxxx视频 | 无码人妻出轨黑人中文字幕 | 成人欧美一区二区三区黑人 | 亚洲国产精品无码一区二区三区 | 亚洲国产日韩a在线播放 | 夜精品a片一区二区三区无码白浆 | 日韩精品a片一区二区三区妖精 | 精品无码国产自产拍在线观看蜜 | 久久99久久99精品中文字幕 | аⅴ资源天堂资源库在线 | 国产av无码专区亚洲awww | 亚洲七七久久桃花影院 | 日韩av无码一区二区三区不卡 | 国色天香社区在线视频 | 国产亚av手机在线观看 | 婷婷色婷婷开心五月四房播播 | 秋霞成人午夜鲁丝一区二区三区 | 少妇无套内谢久久久久 | 日韩精品成人一区二区三区 | 亚洲男人av天堂午夜在 | 久久久精品人妻久久影视 | 在线播放免费人成毛片乱码 | 久久精品丝袜高跟鞋 | 国产女主播喷水视频在线观看 | 伊在人天堂亚洲香蕉精品区 | 好爽又高潮了毛片免费下载 | 人人妻人人澡人人爽精品欧美 | 精品厕所偷拍各类美女tp嘘嘘 | 大肉大捧一进一出好爽视频 | 呦交小u女精品视频 | 国产成人亚洲综合无码 | 性生交片免费无码看人 | 无码人妻丰满熟妇区五十路百度 | 中文字幕人妻无码一夲道 | 在线视频网站www色 | 亚洲精品国偷拍自产在线麻豆 | 色综合久久网 | 国精产品一区二区三区 | 一区二区三区乱码在线 | 欧洲 | 国产精品永久免费视频 | aⅴ在线视频男人的天堂 | 日本大乳高潮视频在线观看 | 久久亚洲中文字幕精品一区 | 日日麻批免费40分钟无码 | 六月丁香婷婷色狠狠久久 | 暴力强奷在线播放无码 | 国产精品嫩草久久久久 | 中文字幕精品av一区二区五区 | 久久精品国产大片免费观看 | а√天堂www在线天堂小说 | 少妇无码一区二区二三区 | 无码人妻丰满熟妇区五十路百度 | 蜜桃视频插满18在线观看 | 色老头在线一区二区三区 | 久久久久99精品成人片 | 麻豆国产人妻欲求不满 | 一本一道久久综合久久 | 欧美 日韩 亚洲 在线 | 国产热a欧美热a在线视频 | 中文字幕久久久久人妻 | 东京无码熟妇人妻av在线网址 | 九九久久精品国产免费看小说 | 亚洲日韩乱码中文无码蜜桃臀网站 | а天堂中文在线官网 | 成人三级无码视频在线观看 | 97久久国产亚洲精品超碰热 | 国产午夜无码精品免费看 | 精品久久久无码人妻字幂 | 亚洲人亚洲人成电影网站色 | 免费国产黄网站在线观看 | 亚洲精品国产第一综合99久久 | 日韩少妇内射免费播放 | 国产成人无码a区在线观看视频app | 免费观看又污又黄的网站 | 真人与拘做受免费视频 | 欧美精品免费观看二区 | 日韩无码专区 | 俺去俺来也在线www色官网 | 国产亚洲日韩欧美另类第八页 | 大肉大捧一进一出好爽视频 | 强辱丰满人妻hd中文字幕 | 亚洲一区二区三区 | 国产精品a成v人在线播放 | a在线观看免费网站大全 | 巨爆乳无码视频在线观看 | 强辱丰满人妻hd中文字幕 | 99久久精品国产一区二区蜜芽 | 日本肉体xxxx裸交 | 最近免费中文字幕中文高清百度 | 免费网站看v片在线18禁无码 | 激情内射日本一区二区三区 | 乱人伦人妻中文字幕无码久久网 | 内射爽无广熟女亚洲 | 国产成人综合色在线观看网站 | 老司机亚洲精品影院无码 | 婷婷综合久久中文字幕蜜桃三电影 | 婷婷五月综合缴情在线视频 | 中文无码成人免费视频在线观看 | 99久久精品无码一区二区毛片 | 亚洲人成影院在线无码按摩店 | 西西人体www44rt大胆高清 | 精品国精品国产自在久国产87 | 精品偷拍一区二区三区在线看 | 亚洲无人区午夜福利码高清完整版 | 国产成人无码一二三区视频 | 亚洲综合在线一区二区三区 | 图片小说视频一区二区 | 女高中生第一次破苞av | 中文字幕无码av激情不卡 | 久久久久成人片免费观看蜜芽 | 欧美丰满熟妇xxxx性ppx人交 | 国产色在线 | 国产 | 久久这里只有精品视频9 | 国产精品无码mv在线观看 | 蜜桃视频插满18在线观看 | 久久久久免费精品国产 | 久久熟妇人妻午夜寂寞影院 | 国产精品久久久 | 99久久人妻精品免费一区 | 久久99精品久久久久久 | 国产精品久久久 | 无码纯肉视频在线观看 | 国产麻豆精品精东影业av网站 | 国产精品久久久久久久影院 | 超碰97人人做人人爱少妇 | 粉嫩少妇内射浓精videos | 露脸叫床粗话东北少妇 | 亚洲s码欧洲m码国产av | 久9re热视频这里只有精品 | 日韩成人一区二区三区在线观看 | 粉嫩少妇内射浓精videos | 丁香花在线影院观看在线播放 | 久久久久99精品成人片 | 在线观看国产午夜福利片 | 99久久人妻精品免费一区 | 亚洲日韩一区二区三区 | 国产激情无码一区二区 | 永久免费精品精品永久-夜色 | 色五月丁香五月综合五月 | 亚洲欧美色中文字幕在线 | 国产乱人伦偷精品视频 | 天天摸天天透天天添 | 任你躁国产自任一区二区三区 | 青草青草久热国产精品 | а√资源新版在线天堂 | 国产精品爱久久久久久久 | 一个人看的视频www在线 | 一区二区三区高清视频一 | 伊人久久大香线蕉亚洲 | 亚洲精品综合五月久久小说 | 无码毛片视频一区二区本码 | 婷婷综合久久中文字幕蜜桃三电影 | 1000部夫妻午夜免费 | 女人色极品影院 | 午夜福利不卡在线视频 | 女人被男人爽到呻吟的视频 | 扒开双腿疯狂进出爽爽爽视频 | 国产人妻久久精品二区三区老狼 | 色一情一乱一伦一视频免费看 | 爽爽影院免费观看 | 自拍偷自拍亚洲精品10p | 亚洲精品成a人在线观看 | 一个人看的视频www在线 | 鲁大师影院在线观看 | 久久国产精品_国产精品 | 久久熟妇人妻午夜寂寞影院 | 国产偷自视频区视频 | 国产精品人人妻人人爽 | 中文字幕色婷婷在线视频 | 爱做久久久久久 | av无码电影一区二区三区 | 欧美熟妇另类久久久久久多毛 | 狂野欧美性猛xxxx乱大交 | 伊人久久大香线焦av综合影院 | 国产9 9在线 | 中文 | 亚洲色成人中文字幕网站 | 久久aⅴ免费观看 | 精品久久久无码中文字幕 | 无码一区二区三区在线 | 国产在线aaa片一区二区99 | 少妇无码av无码专区在线观看 | 国产成人无码午夜视频在线观看 | 精品 日韩 国产 欧美 视频 | 国产网红无码精品视频 | 欧美丰满熟妇xxxx性ppx人交 | 色综合久久网 | 在线欧美精品一区二区三区 | 国产乱人偷精品人妻a片 | 无套内谢的新婚少妇国语播放 | 久久精品国产一区二区三区 | 欧美xxxxx精品 | 伊人久久大香线焦av综合影院 | 日日噜噜噜噜夜夜爽亚洲精品 | √8天堂资源地址中文在线 | 东京无码熟妇人妻av在线网址 | 国产免费久久久久久无码 | 无码人妻精品一区二区三区下载 | 亚洲中文字幕在线无码一区二区 | 亚洲男人av天堂午夜在 | 亚洲精品国产品国语在线观看 | 麻豆精产国品 | 波多野结衣乳巨码无在线观看 | 中文字幕无码视频专区 | 亚洲午夜无码久久 | 小泽玛莉亚一区二区视频在线 | 欧美猛少妇色xxxxx | 亚洲中文字幕在线无码一区二区 | 日本在线高清不卡免费播放 | 国产精品香蕉在线观看 | 欧美 日韩 亚洲 在线 | 天堂亚洲2017在线观看 | 一本色道久久综合亚洲精品不卡 | 亚洲成av人片在线观看无码不卡 | aⅴ亚洲 日韩 色 图网站 播放 | 午夜熟女插插xx免费视频 | 欧美人与牲动交xxxx | 国产内射爽爽大片视频社区在线 | 日韩人妻少妇一区二区三区 | 亚洲精品一区二区三区在线观看 | 无遮挡啪啪摇乳动态图 | 国产黄在线观看免费观看不卡 | 丰满少妇人妻久久久久久 | 国语精品一区二区三区 | 爆乳一区二区三区无码 | 少妇性俱乐部纵欲狂欢电影 | 久久国产精品偷任你爽任你 | 亚洲精品久久久久中文第一幕 | 国产内射老熟女aaaa | 国模大胆一区二区三区 | 国产av无码专区亚洲a∨毛片 | 国产精品久免费的黄网站 | 扒开双腿吃奶呻吟做受视频 | 午夜理论片yy44880影院 | 无码午夜成人1000部免费视频 | 激情亚洲一区国产精品 | 日本va欧美va欧美va精品 | 乱码av麻豆丝袜熟女系列 | 十八禁真人啪啪免费网站 | 狠狠综合久久久久综合网 | 精品亚洲成av人在线观看 | 一本色道婷婷久久欧美 | 学生妹亚洲一区二区 | 内射白嫩少妇超碰 | 性色欲情网站iwww九文堂 | 99麻豆久久久国产精品免费 | 国产无套内射久久久国产 | 国产精品久久久av久久久 | 人妻少妇精品无码专区动漫 | 伦伦影院午夜理论片 | 老司机亚洲精品影院无码 | 国产内射爽爽大片视频社区在线 | 国产疯狂伦交大片 | 欧美 日韩 人妻 高清 中文 | 精品无码av一区二区三区 | 国产精品人人妻人人爽 | 色综合天天综合狠狠爱 | 18精品久久久无码午夜福利 | 亚洲第一网站男人都懂 | 无遮无挡爽爽免费视频 | 偷窥村妇洗澡毛毛多 | 欧美熟妇另类久久久久久多毛 | 日本乱人伦片中文三区 | 性欧美videos高清精品 | 亚洲国产欧美日韩精品一区二区三区 | 免费无码一区二区三区蜜桃大 | 一本大道久久东京热无码av | 国产精品亚洲综合色区韩国 | 国精产品一区二区三区 | 国语精品一区二区三区 | 久久精品人人做人人综合试看 | 乌克兰少妇xxxx做受 | 丰满岳乱妇在线观看中字无码 | 国产精品18久久久久久麻辣 | 国产无遮挡又黄又爽又色 | 高潮喷水的毛片 | 国产亚洲视频中文字幕97精品 | 亚洲精品久久久久avwww潮水 | 国产网红无码精品视频 | 一本久道久久综合狠狠爱 | 亚洲国产精品久久久久久 | 国产黄在线观看免费观看不卡 | 少妇无码av无码专区在线观看 | 天干天干啦夜天干天2017 | 中文字幕无码av波多野吉衣 | 欧美日韩一区二区免费视频 | 国产av剧情md精品麻豆 | 欧美日韩一区二区综合 | 亚洲精品一区国产 | 国精产品一区二区三区 | 秋霞成人午夜鲁丝一区二区三区 | 狂野欧美性猛交免费视频 | 亚洲熟妇色xxxxx欧美老妇y | 久久综合给久久狠狠97色 | 欧美日本日韩 | 捆绑白丝粉色jk震动捧喷白浆 | 草草网站影院白丝内射 | 天天摸天天透天天添 | 中文无码精品a∨在线观看不卡 | av无码电影一区二区三区 | 亚洲人成网站色7799 | 久久综合香蕉国产蜜臀av | 国产激情精品一区二区三区 | 国产亚洲视频中文字幕97精品 | 丝袜 中出 制服 人妻 美腿 | 少妇一晚三次一区二区三区 | 97夜夜澡人人双人人人喊 | 国产乱人伦av在线无码 | 一本色道久久综合亚洲精品不卡 | 午夜精品一区二区三区在线观看 | 理论片87福利理论电影 | 久久精品人人做人人综合 | 国产精品.xx视频.xxtv | 欧美性生交xxxxx久久久 | av在线亚洲欧洲日产一区二区 | 少妇人妻偷人精品无码视频 | 少妇无套内谢久久久久 | 精品国产麻豆免费人成网站 | 欧美日韩一区二区三区自拍 | 日本熟妇大屁股人妻 | 久久99热只有频精品8 | 粗大的内捧猛烈进出视频 | 久久99精品久久久久久 | 国产 精品 自在自线 | 人妻人人添人妻人人爱 | 纯爱无遮挡h肉动漫在线播放 | 2020久久超碰国产精品最新 | 少妇性俱乐部纵欲狂欢电影 | 久久精品人妻少妇一区二区三区 | 亚洲熟妇色xxxxx欧美老妇 | 国产成人精品视频ⅴa片软件竹菊 | 成熟人妻av无码专区 | 亚洲中文字幕久久无码 | 蜜桃视频韩日免费播放 | 国产人妻精品一区二区三区不卡 | 中文字幕人成乱码熟女app | 亚洲成在人网站无码天堂 | 久久国产精品精品国产色婷婷 | 性做久久久久久久久 | 国产女主播喷水视频在线观看 | 亚洲综合精品香蕉久久网 | 最近中文2019字幕第二页 | 国产在热线精品视频 | 国产成人精品优优av | 亚洲综合伊人久久大杳蕉 | 亚洲中文字幕无码中文字在线 | 又湿又紧又大又爽a视频国产 | 久久97精品久久久久久久不卡 | 一本色道久久综合亚洲精品不卡 | 国产偷抇久久精品a片69 | 国产人妖乱国产精品人妖 | 俄罗斯老熟妇色xxxx | 婷婷六月久久综合丁香 | 久久精品99久久香蕉国产色戒 | 日本护士xxxxhd少妇 | 国产亚洲精品久久久久久久久动漫 | 牲交欧美兽交欧美 | 天天躁日日躁狠狠躁免费麻豆 | 久久 国产 尿 小便 嘘嘘 | 激情亚洲一区国产精品 | 欧美性猛交内射兽交老熟妇 | 日韩亚洲欧美中文高清在线 | 亚洲另类伦春色综合小说 | 免费男性肉肉影院 | 国产麻豆精品精东影业av网站 | 国产av一区二区三区最新精品 | 爽爽影院免费观看 | 亚洲爆乳无码专区 | 国产免费久久久久久无码 | 激情五月综合色婷婷一区二区 | 国语精品一区二区三区 | 人妻与老人中文字幕 | 日本精品少妇一区二区三区 | 国产九九九九九九九a片 | 无遮挡国产高潮视频免费观看 | 亚洲日韩一区二区三区 | 两性色午夜免费视频 | 大肉大捧一进一出视频出来呀 | 国内精品久久毛片一区二区 | 成人综合网亚洲伊人 | 中文毛片无遮挡高清免费 | 97资源共享在线视频 | 久青草影院在线观看国产 | 无码国内精品人妻少妇 | 99麻豆久久久国产精品免费 | 性色欲情网站iwww九文堂 | 欧美人与物videos另类 | 亚洲精品综合一区二区三区在线 | 99国产精品白浆在线观看免费 | 亚洲国产一区二区三区在线观看 | 无套内谢的新婚少妇国语播放 | 激情亚洲一区国产精品 | 日本熟妇浓毛 | 国产亚洲tv在线观看 | 国产做国产爱免费视频 | 国产一区二区三区精品视频 | 妺妺窝人体色www婷婷 | 国产精品人妻一区二区三区四 | 中文字幕乱码亚洲无线三区 | 精品厕所偷拍各类美女tp嘘嘘 | 亚洲欧美日韩综合久久久 | 国产深夜福利视频在线 | 国产人妻人伦精品1国产丝袜 | 牛和人交xxxx欧美 | 老头边吃奶边弄进去呻吟 | 黑人巨大精品欧美一区二区 | 中文字幕乱码人妻无码久久 | 久久综合给合久久狠狠狠97色 | 国内少妇偷人精品视频免费 | 欧美zoozzooz性欧美 | 激情人妻另类人妻伦 | 日韩精品无码免费一区二区三区 | 亚洲人成无码网www | 18黄暴禁片在线观看 | 亚洲成在人网站无码天堂 | 牲交欧美兽交欧美 | 爱做久久久久久 | 女人被男人爽到呻吟的视频 | 国产亚洲精品久久久闺蜜 | 1000部啪啪未满十八勿入下载 | 亚拍精品一区二区三区探花 | 国产情侣作爱视频免费观看 | 国产真人无遮挡作爱免费视频 | 国産精品久久久久久久 | 亚洲国产成人a精品不卡在线 | 55夜色66夜色国产精品视频 | 亚洲а∨天堂久久精品2021 | 亚洲国产精品无码久久久久高潮 | 对白脏话肉麻粗话av | 亚洲色偷偷偷综合网 | 欧美高清在线精品一区 | 中文字幕无码av波多野吉衣 | 77777熟女视频在线观看 а天堂中文在线官网 | 亚洲色成人中文字幕网站 | 久久久久人妻一区精品色欧美 | 中文字幕av伊人av无码av | 亚洲午夜久久久影院 | 国产口爆吞精在线视频 | 国产精品无码一区二区三区不卡 | 日本免费一区二区三区最新 | 亚洲国产午夜精品理论片 | 久久久国产精品无码免费专区 | 亚洲伊人久久精品影院 | 欧洲vodafone精品性 | 久久精品人妻少妇一区二区三区 | 亚洲无人区午夜福利码高清完整版 | 亚洲 激情 小说 另类 欧美 | 曰韩无码二三区中文字幕 | 日本爽爽爽爽爽爽在线观看免 | 一本久久伊人热热精品中文字幕 | 天堂а√在线中文在线 | 性生交大片免费看l | 超碰97人人做人人爱少妇 | 性生交片免费无码看人 | 成 人 免费观看网站 | 国产av一区二区三区最新精品 | 亚洲成av人综合在线观看 | 久久精品人人做人人综合试看 | 人人澡人摸人人添 | 性啪啪chinese东北女人 | 国产亚洲日韩欧美另类第八页 | 精品一二三区久久aaa片 | 亚洲日本在线电影 | 亚洲精品无码人妻无码 | 国产精品久久久久久久影院 | 亚洲娇小与黑人巨大交 | 国产内射爽爽大片视频社区在线 | 色情久久久av熟女人妻网站 | 日本高清一区免费中文视频 | 综合激情五月综合激情五月激情1 | 国产va免费精品观看 | 青青青爽视频在线观看 | 伊人色综合久久天天小片 | av在线亚洲欧洲日产一区二区 | 亚洲综合久久一区二区 | 亚洲国产日韩a在线播放 | 天堂а√在线中文在线 | 熟妇人妻中文av无码 | 欧美日韩久久久精品a片 | 人人超人人超碰超国产 | 国产亚洲精品久久久久久国模美 | 国产精品亚洲综合色区韩国 | 中文字幕久久久久人妻 | 亚洲综合伊人久久大杳蕉 | 宝宝好涨水快流出来免费视频 | 青青久在线视频免费观看 | 国产精品无套呻吟在线 | 人妻与老人中文字幕 | 中文字幕av无码一区二区三区电影 | 久久久久久久人妻无码中文字幕爆 | 国产卡一卡二卡三 | 精品无码一区二区三区的天堂 | 性色欲网站人妻丰满中文久久不卡 | 又色又爽又黄的美女裸体网站 | 国产亚洲精品久久久久久国模美 | 少妇高潮喷潮久久久影院 | 无码播放一区二区三区 | 国产精品18久久久久久麻辣 | 国产午夜亚洲精品不卡 | 亚洲第一无码av无码专区 | 在线观看欧美一区二区三区 | 澳门永久av免费网站 | 中文字幕无码人妻少妇免费 | 日日噜噜噜噜夜夜爽亚洲精品 | 精品无码国产一区二区三区av | 国产精品a成v人在线播放 | 国产在线精品一区二区三区直播 | 国产香蕉97碰碰久久人人 | 中文字幕乱码中文乱码51精品 | 夜夜躁日日躁狠狠久久av | 久久精品国产日本波多野结衣 | 性欧美熟妇videofreesex | 日日鲁鲁鲁夜夜爽爽狠狠 | 夜夜夜高潮夜夜爽夜夜爰爰 | 熟女俱乐部五十路六十路av | www一区二区www免费 | 国产色在线 | 国产 | 国产激情一区二区三区 | 无码毛片视频一区二区本码 | 欧美三级a做爰在线观看 | 亚洲国产精品一区二区美利坚 | 亚洲精品国产a久久久久久 | 精品欧洲av无码一区二区三区 | www成人国产高清内射 | 国产偷抇久久精品a片69 | 在线观看国产一区二区三区 | 日本欧美一区二区三区乱码 | 人妻少妇精品无码专区二区 | 亚洲人成网站在线播放942 | 亚洲欧美日韩综合久久久 | 成人无码影片精品久久久 | 丰满少妇弄高潮了www | 少妇久久久久久人妻无码 | 人妻无码αv中文字幕久久琪琪布 | 日本护士xxxxhd少妇 | 樱花草在线播放免费中文 | 久久久久成人精品免费播放动漫 | 国产在线精品一区二区三区直播 | 色妞www精品免费视频 | 漂亮人妻洗澡被公强 日日躁 | 国产97人人超碰caoprom | 麻豆国产人妻欲求不满谁演的 | 免费观看激色视频网站 | 东京一本一道一二三区 | 香蕉久久久久久av成人 | 久久亚洲日韩精品一区二区三区 | 九九综合va免费看 | 日本熟妇人妻xxxxx人hd | 人妻无码久久精品人妻 | 色一情一乱一伦一视频免费看 | 九一九色国产 | 日本爽爽爽爽爽爽在线观看免 | 日韩欧美中文字幕公布 | 国产熟妇高潮叫床视频播放 | 强奷人妻日本中文字幕 | 欧美熟妇另类久久久久久不卡 | 亚洲熟女一区二区三区 | 国产亚洲精品久久久久久久久动漫 | 亚欧洲精品在线视频免费观看 | 俺去俺来也www色官网 | 国产精华av午夜在线观看 | 学生妹亚洲一区二区 | 沈阳熟女露脸对白视频 | 18禁止看的免费污网站 | 人妻天天爽夜夜爽一区二区 | 欧美自拍另类欧美综合图片区 | 亚洲成a人片在线观看无码3d | 久久午夜无码鲁丝片秋霞 | 国产又粗又硬又大爽黄老大爷视 | 久久无码中文字幕免费影院蜜桃 | www国产亚洲精品久久久日本 | 青草视频在线播放 | 天堂无码人妻精品一区二区三区 | 97se亚洲精品一区 | 精品国偷自产在线视频 | 又大又黄又粗又爽的免费视频 | 99久久精品午夜一区二区 | 亚洲中文字幕av在天堂 | 国产深夜福利视频在线 | 亚洲日韩av一区二区三区四区 | 大地资源中文第3页 | 久久久精品国产sm最大网站 | 亚洲国产欧美在线成人 | 精品水蜜桃久久久久久久 | 精品久久综合1区2区3区激情 | 成人动漫在线观看 | 日本精品人妻无码免费大全 | 久久99精品国产麻豆 | 精品国产青草久久久久福利 | 精品国产一区二区三区四区 | 国精品人妻无码一区二区三区蜜柚 | 久久久久人妻一区精品色欧美 | 少妇无码一区二区二三区 | 天天av天天av天天透 | 人妻少妇被猛烈进入中文字幕 | 97色伦图片97综合影院 | 日本va欧美va欧美va精品 | 成人片黄网站色大片免费观看 | 久久综合香蕉国产蜜臀av | 无码精品人妻一区二区三区av | 老熟妇仑乱视频一区二区 | 久久婷婷五月综合色国产香蕉 | 麻豆蜜桃av蜜臀av色欲av | www国产亚洲精品久久久日本 | 日本大乳高潮视频在线观看 | 少妇无码av无码专区在线观看 | 国产真实伦对白全集 | 亚洲а∨天堂久久精品2021 | 妺妺窝人体色www在线小说 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 日韩精品无码免费一区二区三区 | 国产美女精品一区二区三区 | 国产精品99爱免费视频 | 亚洲中文字幕无码中字 | 欧美怡红院免费全部视频 | 扒开双腿吃奶呻吟做受视频 | 国产真实伦对白全集 | 国产精品久久精品三级 | 网友自拍区视频精品 | 强奷人妻日本中文字幕 | 成年美女黄网站色大免费全看 | 中文字幕乱妇无码av在线 | 久久精品丝袜高跟鞋 | 白嫩日本少妇做爰 | 国产人妻精品一区二区三区 | 中文字幕人妻丝袜二区 | 久久亚洲日韩精品一区二区三区 | 中文字幕乱码中文乱码51精品 | 日韩欧美群交p片內射中文 | 亚洲国产精品久久人人爱 | 国产9 9在线 | 中文 | 成人动漫在线观看 | 天下第一社区视频www日本 | 国产精品沙发午睡系列 | 中文字幕无码日韩欧毛 | 国产精品无码mv在线观看 | 国产亚洲视频中文字幕97精品 | 一二三四社区在线中文视频 | 亚洲精品一区二区三区在线 | 亚洲精品国偷拍自产在线观看蜜桃 | 久久久久99精品国产片 | 久久久久免费精品国产 | 国产乱人偷精品人妻a片 | www国产亚洲精品久久网站 | www国产亚洲精品久久久日本 | 美女黄网站人色视频免费国产 | 自拍偷自拍亚洲精品10p | 免费观看的无遮挡av | 激情综合激情五月俺也去 | 成人精品视频一区二区三区尤物 | 日韩人妻无码一区二区三区久久99 | 久久zyz资源站无码中文动漫 | 国产极品美女高潮无套在线观看 | 一二三四社区在线中文视频 | 国精产品一品二品国精品69xx | 日本xxxx色视频在线观看免费 | 亚洲区小说区激情区图片区 | 熟女俱乐部五十路六十路av | 日本成熟视频免费视频 | 国产精品第一国产精品 | 97久久国产亚洲精品超碰热 | 亚洲精品综合五月久久小说 | 妺妺窝人体色www在线小说 | 强开小婷嫩苞又嫩又紧视频 | 午夜免费福利小电影 | 人妻少妇精品无码专区二区 | 精品久久久无码人妻字幂 | 中文字幕人妻无码一区二区三区 | 在线 国产 欧美 亚洲 天堂 | 久久人人爽人人爽人人片av高清 | 成人无码精品1区2区3区免费看 | 免费网站看v片在线18禁无码 | 日日摸天天摸爽爽狠狠97 | 国产成人人人97超碰超爽8 | 东京热无码av男人的天堂 | 国产免费久久精品国产传媒 | 伊人久久婷婷五月综合97色 | 久久 国产 尿 小便 嘘嘘 | 亚洲欧美综合区丁香五月小说 | 亚洲一区av无码专区在线观看 | 婷婷丁香五月天综合东京热 | 亚洲国产综合无码一区 | 精品国产aⅴ无码一区二区 | 澳门永久av免费网站 | 夜精品a片一区二区三区无码白浆 | av无码不卡在线观看免费 | 九九综合va免费看 | 无码人妻精品一区二区三区下载 | 一本久道久久综合狠狠爱 | 亚洲啪av永久无码精品放毛片 | 色欲人妻aaaaaaa无码 | av无码不卡在线观看免费 | 久久精品一区二区三区四区 | 亚洲va中文字幕无码久久不卡 | 97精品国产97久久久久久免费 | 日韩人妻无码中文字幕视频 | 亚洲乱码国产乱码精品精 | 久久久久成人片免费观看蜜芽 | 性欧美牲交xxxxx视频 | 亚洲国产一区二区三区在线观看 | 2020久久香蕉国产线看观看 | 精品无码国产自产拍在线观看蜜 | 少妇高潮喷潮久久久影院 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 亚洲自偷自拍另类第1页 | 国产成人一区二区三区别 | 2020最新国产自产精品 | 欧美性生交xxxxx久久久 | 久久精品国产精品国产精品污 | 性开放的女人aaa片 | 亚洲综合伊人久久大杳蕉 | 国产xxx69麻豆国语对白 | 精品少妇爆乳无码av无码专区 | 国产精品人人爽人人做我的可爱 | 无码人妻精品一区二区三区不卡 | 久久精品国产99久久6动漫 | 久久久久99精品成人片 | 高清不卡一区二区三区 | 久久久无码中文字幕久... | 成人欧美一区二区三区黑人免费 | 国产成人人人97超碰超爽8 | 欧美熟妇另类久久久久久不卡 | 狠狠色色综合网站 | 国产精品人人妻人人爽 | 国产精品亚洲综合色区韩国 | 熟妇激情内射com | 无码乱肉视频免费大全合集 | aa片在线观看视频在线播放 | 日本精品久久久久中文字幕 | 婷婷综合久久中文字幕蜜桃三电影 | 曰韩少妇内射免费播放 | 在线亚洲高清揄拍自拍一品区 | 亚洲啪av永久无码精品放毛片 | 亚洲国产精华液网站w | 亚洲熟女一区二区三区 | 国产九九九九九九九a片 | 成人无码视频在线观看网站 | 风流少妇按摩来高潮 | 国产精品福利视频导航 | 中文字幕精品av一区二区五区 | 日韩人妻无码一区二区三区久久99 | 亚洲の无码国产の无码步美 | 精品欧美一区二区三区久久久 | 国产成人精品久久亚洲高清不卡 | 国产另类ts人妖一区二区 | 日韩精品a片一区二区三区妖精 | 少妇无套内谢久久久久 | 精品久久久无码中文字幕 | 国产舌乚八伦偷品w中 | 久久久久国色av免费观看性色 | 国产高清av在线播放 | 人妻少妇精品视频专区 | 久久 国产 尿 小便 嘘嘘 | аⅴ资源天堂资源库在线 | 97精品人妻一区二区三区香蕉 | 精品乱码久久久久久久 | 亚洲熟妇色xxxxx欧美老妇y | 少妇性俱乐部纵欲狂欢电影 | 天堂а√在线地址中文在线 | 亚洲成在人网站无码天堂 | 老熟妇仑乱视频一区二区 | 国产亚洲日韩欧美另类第八页 | 麻花豆传媒剧国产免费mv在线 | 亚洲无人区午夜福利码高清完整版 | 内射欧美老妇wbb | 日本一区二区三区免费播放 | 国产麻豆精品精东影业av网站 | 国产精品美女久久久久av爽李琼 | 久久久久成人片免费观看蜜芽 | 丰满人妻翻云覆雨呻吟视频 | 国内精品九九久久久精品 | 最新版天堂资源中文官网 | 天堂无码人妻精品一区二区三区 | 亚洲一区二区三区香蕉 | 无码播放一区二区三区 | 欧美人与禽猛交狂配 | 国产乱人无码伦av在线a | 国产精品沙发午睡系列 | 天天躁日日躁狠狠躁免费麻豆 | 欧美黑人乱大交 | 国产成人无码午夜视频在线观看 | ass日本丰满熟妇pics | 玩弄少妇高潮ⅹxxxyw | 在线 国产 欧美 亚洲 天堂 | 欧美丰满少妇xxxx性 | 中文字幕乱码中文乱码51精品 | 欧美怡红院免费全部视频 | 樱花草在线社区www | 久久精品国产99久久6动漫 | 乱码av麻豆丝袜熟女系列 | 99精品视频在线观看免费 | 色综合久久久无码中文字幕 | 成人综合网亚洲伊人 | 精品无码国产自产拍在线观看蜜 | 丰满少妇人妻久久久久久 | a在线亚洲男人的天堂 | 少妇的肉体aa片免费 | 亚洲成色www久久网站 | 一本无码人妻在中文字幕免费 | 国产女主播喷水视频在线观看 | 午夜男女很黄的视频 | 久久精品国产99久久6动漫 | 思思久久99热只有频精品66 | 玩弄中年熟妇正在播放 | 欧美35页视频在线观看 | 久久精品女人天堂av免费观看 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 国产人妖乱国产精品人妖 | 无码国模国产在线观看 | 色噜噜亚洲男人的天堂 | 精品无码国产自产拍在线观看蜜 | 免费国产黄网站在线观看 | 国产人妻人伦精品1国产丝袜 | 日本精品久久久久中文字幕 | 亚洲成a人一区二区三区 | 中文亚洲成a人片在线观看 | 天堂无码人妻精品一区二区三区 | 精品无码av一区二区三区 | 欧美性黑人极品hd | 国产欧美熟妇另类久久久 | 欧洲欧美人成视频在线 | 久久99久久99精品中文字幕 | 伦伦影院午夜理论片 | 3d动漫精品啪啪一区二区中 | 日本va欧美va欧美va精品 | 国产精品无码mv在线观看 | 激情人妻另类人妻伦 | 人妻天天爽夜夜爽一区二区 | 天天做天天爱天天爽综合网 | 国精产品一区二区三区 | 日本一卡二卡不卡视频查询 | 精品成在人线av无码免费看 | 亚洲日韩av片在线观看 | 帮老师解开蕾丝奶罩吸乳网站 | 丰满人妻翻云覆雨呻吟视频 | 99久久99久久免费精品蜜桃 | 国产又粗又硬又大爽黄老大爷视 | 国产女主播喷水视频在线观看 | 免费中文字幕日韩欧美 | 亚洲国产精品一区二区美利坚 | 精品aⅴ一区二区三区 | 国产成人无码区免费内射一片色欲 | 无码精品人妻一区二区三区av | 国产午夜亚洲精品不卡下载 | aⅴ亚洲 日韩 色 图网站 播放 | 亚洲色偷偷男人的天堂 | 亚洲天堂2017无码 | 国产97人人超碰caoprom | 免费无码一区二区三区蜜桃大 | 红桃av一区二区三区在线无码av | 中文字幕中文有码在线 | 天天av天天av天天透 | 国产精品理论片在线观看 | 欧美成人高清在线播放 | 最近免费中文字幕中文高清百度 | 丝袜足控一区二区三区 | 综合人妻久久一区二区精品 | 日韩av无码中文无码电影 | 亚洲经典千人经典日产 | 亚洲午夜久久久影院 | 国产亚洲欧美在线专区 | 水蜜桃色314在线观看 | 国内精品一区二区三区不卡 | 88国产精品欧美一区二区三区 | 人妻aⅴ无码一区二区三区 | 国产网红无码精品视频 | 麻豆精品国产精华精华液好用吗 | 欧美第一黄网免费网站 | 乱码午夜-极国产极内射 | 久久精品中文字幕大胸 | 宝宝好涨水快流出来免费视频 | 亚洲成在人网站无码天堂 | 国产精品亚洲综合色区韩国 | 亚洲人亚洲人成电影网站色 | 老熟妇仑乱视频一区二区 | 疯狂三人交性欧美 | 久久精品国产一区二区三区 | 国产一区二区三区精品视频 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 免费无码av一区二区 | 日本精品人妻无码免费大全 | 国产精品久久国产精品99 | 乱人伦中文视频在线观看 | 亚洲 a v无 码免 费 成 人 a v | 亚洲色大成网站www国产 | 少妇无套内谢久久久久 | 无码国产乱人伦偷精品视频 | 午夜精品一区二区三区在线观看 | 日本精品人妻无码77777 天堂一区人妻无码 | 无码播放一区二区三区 | 国产乱码精品一品二品 | 国产绳艺sm调教室论坛 | 国产av无码专区亚洲awww | 无遮无挡爽爽免费视频 | 亚洲中文字幕无码中字 | 俺去俺来也www色官网 | 无码播放一区二区三区 | 日本精品少妇一区二区三区 | 精品国产一区av天美传媒 | 又色又爽又黄的美女裸体网站 | 国精品人妻无码一区二区三区蜜柚 | 99麻豆久久久国产精品免费 | 欧美喷潮久久久xxxxx | 真人与拘做受免费视频一 | 国产精品无码一区二区桃花视频 | 白嫩日本少妇做爰 | 亚洲日韩精品欧美一区二区 | 亚洲熟妇色xxxxx欧美老妇 | 久久精品国产一区二区三区肥胖 | 亚洲熟妇自偷自拍另类 | 捆绑白丝粉色jk震动捧喷白浆 | 丁香啪啪综合成人亚洲 | 中文字幕人妻无码一区二区三区 | 午夜福利不卡在线视频 | 亚洲中文字幕va福利 | 色情久久久av熟女人妻网站 | 欧美 日韩 人妻 高清 中文 | 色欲av亚洲一区无码少妇 | 精品一区二区三区波多野结衣 | 日日天日日夜日日摸 | 老子影院午夜伦不卡 | 性欧美大战久久久久久久 | 亚洲日韩av一区二区三区四区 | 男人和女人高潮免费网站 | 2020久久香蕉国产线看观看 | 国产精品人人爽人人做我的可爱 | 欧洲美熟女乱又伦 | 色综合久久久无码网中文 | 国产乱人伦av在线无码 | 国产在线无码精品电影网 | 高清不卡一区二区三区 | 亚洲精品成a人在线观看 | 欧美丰满少妇xxxx性 | 人妻少妇精品无码专区动漫 | 久久久精品成人免费观看 | 久久亚洲日韩精品一区二区三区 | 免费观看黄网站 | 国产极品视觉盛宴 | 人妻夜夜爽天天爽三区 | 国产亚洲精品久久久久久国模美 | 国产极品美女高潮无套在线观看 | 中文字幕中文有码在线 | 日本熟妇乱子伦xxxx | 色情久久久av熟女人妻网站 | 亚洲精品美女久久久久久久 | 男人的天堂2018无码 | 国内精品人妻无码久久久影院 | 麻豆蜜桃av蜜臀av色欲av | 日本大乳高潮视频在线观看 | 欧美人与物videos另类 | 俺去俺来也在线www色官网 | 天天综合网天天综合色 | 天天躁日日躁狠狠躁免费麻豆 | 扒开双腿疯狂进出爽爽爽视频 | 日本饥渴人妻欲求不满 | 一二三四社区在线中文视频 | 亚洲码国产精品高潮在线 | 真人与拘做受免费视频一 | 久久无码人妻影院 | 国产超碰人人爽人人做人人添 | 少女韩国电视剧在线观看完整 | 日日麻批免费40分钟无码 | 5858s亚洲色大成网站www | 天堂在线观看www | 久久午夜夜伦鲁鲁片无码免费 | 日韩人妻系列无码专区 | 亚洲s码欧洲m码国产av | 夜精品a片一区二区三区无码白浆 | 98国产精品综合一区二区三区 | 久久精品国产99精品亚洲 | 国产真实乱对白精彩久久 | 色一情一乱一伦一视频免费看 | 人妻体内射精一区二区三四 | 天天躁日日躁狠狠躁免费麻豆 | 国产特级毛片aaaaaaa高清 | 在线天堂新版最新版在线8 | 欧美自拍另类欧美综合图片区 | 成人性做爰aaa片免费看 | 日本高清一区免费中文视频 | 国产精品久久久久久久影院 | 亚洲无人区一区二区三区 | 国产熟妇另类久久久久 | 对白脏话肉麻粗话av | 国产办公室秘书无码精品99 | 成人亚洲精品久久久久软件 | 麻豆国产人妻欲求不满 | 国产一区二区不卡老阿姨 | 午夜福利一区二区三区在线观看 | 中文字幕乱码亚洲无线三区 | 免费人成网站视频在线观看 | 日本熟妇乱子伦xxxx | 最新国产乱人伦偷精品免费网站 | 伊人久久婷婷五月综合97色 | 日本熟妇乱子伦xxxx | 5858s亚洲色大成网站www | 麻豆国产人妻欲求不满 | 97精品人妻一区二区三区香蕉 | 日韩欧美中文字幕在线三区 | 天天摸天天透天天添 | 真人与拘做受免费视频一 | 四十如虎的丰满熟妇啪啪 | 久久成人a毛片免费观看网站 | 日韩视频 中文字幕 视频一区 | 欧美自拍另类欧美综合图片区 | 亚洲日韩精品欧美一区二区 | 国产精品无码一区二区桃花视频 | 玩弄少妇高潮ⅹxxxyw | 人妻无码αv中文字幕久久琪琪布 | 免费网站看v片在线18禁无码 | 国产成人无码a区在线观看视频app | 成人一区二区免费视频 | 国产成人无码av片在线观看不卡 | 少妇被粗大的猛进出69影院 | 性欧美熟妇videofreesex | 无码人妻出轨黑人中文字幕 | 久久亚洲国产成人精品性色 | 人妻少妇精品无码专区二区 | 麻豆精产国品 | 人妻少妇精品无码专区动漫 | 国产黄在线观看免费观看不卡 | 久久久久久久人妻无码中文字幕爆 | 久久99精品久久久久久 | 国产麻豆精品精东影业av网站 | 国产农村乱对白刺激视频 | 久久久久se色偷偷亚洲精品av | 狠狠躁日日躁夜夜躁2020 | 初尝人妻少妇中文字幕 | √天堂中文官网8在线 | 亚洲欧美综合区丁香五月小说 | 国产热a欧美热a在线视频 | 小泽玛莉亚一区二区视频在线 | 国产精品高潮呻吟av久久4虎 | 亚洲一区二区观看播放 | 精品厕所偷拍各类美女tp嘘嘘 | 乌克兰少妇xxxx做受 | 色狠狠av一区二区三区 | 2020久久超碰国产精品最新 | 国产两女互慰高潮视频在线观看 | 波多野结衣 黑人 | 国产精品沙发午睡系列 | 亚洲精品无码国产 | 97精品国产97久久久久久免费 | 牲欲强的熟妇农村老妇女 | 亚洲精品国产a久久久久久 | 亚洲精品一区三区三区在线观看 | 国产精品亚洲а∨无码播放麻豆 | 综合人妻久久一区二区精品 | 色婷婷香蕉在线一区二区 | 色情久久久av熟女人妻网站 | 久久综合给合久久狠狠狠97色 | 未满成年国产在线观看 | 精品无码国产一区二区三区av | 人人澡人人透人人爽 | 亚洲日韩av一区二区三区四区 | 在线播放免费人成毛片乱码 | 成人欧美一区二区三区黑人 | 无码av免费一区二区三区试看 | 久久久中文字幕日本无吗 | 国精产品一品二品国精品69xx | 曰本女人与公拘交酡免费视频 | 亚洲成a人片在线观看日本 | 俺去俺来也在线www色官网 | 亚洲成av人片天堂网无码】 | 成人免费视频视频在线观看 免费 | 永久黄网站色视频免费直播 | 亚洲中文字幕在线观看 | 未满小14洗澡无码视频网站 | 少妇性荡欲午夜性开放视频剧场 | 久青草影院在线观看国产 | 人人超人人超碰超国产 | 亚洲人交乣女bbw | 无码av岛国片在线播放 | 色婷婷香蕉在线一区二区 | 狠狠噜狠狠狠狠丁香五月 | 欧美成人高清在线播放 | av人摸人人人澡人人超碰下载 | 久久久久久九九精品久 | 十八禁视频网站在线观看 | 欧美兽交xxxx×视频 | 97久久精品无码一区二区 | 午夜精品一区二区三区的区别 | 在线看片无码永久免费视频 | 国产精品a成v人在线播放 | 疯狂三人交性欧美 | 人妻无码久久精品人妻 | 88国产精品欧美一区二区三区 | 亚洲高清偷拍一区二区三区 | 亚洲精品久久久久中文第一幕 | 熟妇人妻无码xxx视频 | 久久精品国产日本波多野结衣 | 成人av无码一区二区三区 | 国産精品久久久久久久 | 久久久精品国产sm最大网站 | 18禁止看的免费污网站 | 天天综合网天天综合色 | 婷婷六月久久综合丁香 | 国产欧美亚洲精品a | √天堂中文官网8在线 | 成人无码精品1区2区3区免费看 | 久久国产精品萌白酱免费 | 亚洲欧美国产精品久久 | 精品乱码久久久久久久 | 欧美人与善在线com | 四虎国产精品一区二区 | 极品尤物被啪到呻吟喷水 | 亚洲国产综合无码一区 | 久久久久久久人妻无码中文字幕爆 | 国产在线精品一区二区高清不卡 | 一本久久a久久精品vr综合 | 欧美丰满熟妇xxxx | 无码免费一区二区三区 | 欧美怡红院免费全部视频 | 狂野欧美性猛交免费视频 | 成人亚洲精品久久久久软件 | 日韩人妻无码一区二区三区久久99 | 亚洲啪av永久无码精品放毛片 | 天天摸天天透天天添 | 无码乱肉视频免费大全合集 | 久久午夜无码鲁丝片 | 无码人妻精品一区二区三区不卡 | 免费看男女做好爽好硬视频 | 学生妹亚洲一区二区 | 中文字幕人妻无码一区二区三区 | 婷婷色婷婷开心五月四房播播 | 爱做久久久久久 | aⅴ在线视频男人的天堂 | 一本大道久久东京热无码av | 亚洲人成人无码网www国产 | 18精品久久久无码午夜福利 | 日韩人妻少妇一区二区三区 | 青青青手机频在线观看 | 性欧美熟妇videofreesex | 亚洲成av人片天堂网无码】 | 亚洲欧美国产精品久久 | 好男人社区资源 | 精品亚洲成av人在线观看 | 少妇被黑人到高潮喷出白浆 | 亚洲熟妇色xxxxx欧美老妇y | 久久久久久久女国产乱让韩 | 国产精品无码一区二区三区不卡 | 99久久99久久免费精品蜜桃 | 久久99精品国产麻豆蜜芽 | 天堂无码人妻精品一区二区三区 | 国产极品视觉盛宴 | 久激情内射婷内射蜜桃人妖 | 四十如虎的丰满熟妇啪啪 | 成在人线av无码免费 | 久久久久久久人妻无码中文字幕爆 | 中文字幕人成乱码熟女app | 成在人线av无码免观看麻豆 | 亚洲第一网站男人都懂 | 精品无码av一区二区三区 | 蜜桃视频插满18在线观看 | 最近免费中文字幕中文高清百度 | 国产女主播喷水视频在线观看 | 精品一二三区久久aaa片 | 国产成人av免费观看 | 婷婷丁香五月天综合东京热 | 国产午夜亚洲精品不卡 | 无套内射视频囯产 | 无码av中文字幕免费放 | a片免费视频在线观看 | 国产手机在线αⅴ片无码观看 | 国产熟女一区二区三区四区五区 | 伊人久久大香线蕉午夜 | ass日本丰满熟妇pics | 久久这里只有精品视频9 | 精品偷拍一区二区三区在线看 | 国产人妻人伦精品 | 国产 浪潮av性色四虎 | 97人妻精品一区二区三区 |