精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

MySQL高可用淺析:MySQL HA方案

數據庫 MySQL 項目管理
對于多數應用來說,MySQL都是作為最關鍵的數據存儲中心的,所以,如何讓MySQL提供HA服務,是我們不得不面對的一個問題。當master當機的時候,我們如何保證數據盡可能的不丟失,如何保證快速的獲知master當機并進行相應的故障轉移處理,都是需要我們好好思考的。

對于多數應用來說,MySQL都是作為最關鍵的數據存儲中心的,所以,如何讓MySQL提供HA服務,是我們不得不面對的一個問題。當master當機的時候,我們如何保證數據盡可能的不丟失,如何保證快速的獲知master當機并進行相應的故障轉移處理,都是需要我們好好思考的。這里,筆者將結合這段時間做的MySQL proxy以及toolsets相關工作,說說我們現階段以及后續會在項目中采用的MySQL HA方案。

 

[[133855]]

(題圖來自:comprendrechoisir.com)

 

Replication

要保證MySQL數據不丟失,replication是一個很好的解決方案,而MySQL也提供了一套強大的replication機制。只是我們需要知道,為了性能考量,replication是采用的asynchronous模式,也就是寫入的數據并不會同步更新到slave上面,如果這時候master當機,我們仍然可能會面臨數據丟失的風險。

為了解決這個問題,我們可以使用semi-synchronous replication,semi-synchronous replication的原理很簡單,當master處理完一個事務,它會等待至少一個支持semi-synchronous的slave確認收到了該事件并將其寫入relay-log之后,才會返回。這樣即使master當機,最少也有一個slave獲取到了完整的數據。

但是,semi-synchronous并不是100%的保證數據不會丟失,如果master在完成事務并將其發送給slave的時候崩潰,仍然可能造成數據丟失。只是相比于傳統的異步復制,semi-synchronous replication能極大地提升數據安全。更為重要的是,它并不慢,MHA的作者都說他們在facebook的生產環境中使用了semi-synchronous(這里),所以我覺得真心沒必要擔心它的性能問題,除非你的業務量級已經完全超越了facebook或者google。在這篇文章里面已經提到,MySQL 5.7之后已經使用了Loss-Less Semi-Synchronous replication,所以丟數據的概率已經很小了。

如果真的想完全保證數據不會丟失,現階段一個比較好的辦法就是使用gelera,一個MySQL集群解決方案,它通過同時寫三份的策略來保證數據不會丟失。筆者沒有任何使用gelera的經驗,只是知道業界已經有公司將其用于生產環境中,性能應該也不是問題。但gelera對MySQL代碼侵入性較強,可能對某些有代碼潔癖的同學來說不合適了:-)

我們還可以使用drbd來實現MySQL數據復制,MySQL官方文檔有一篇文檔有詳細介紹,但筆者并未采用這套方案,MHA的作者寫了一些采用drdb的問題,在這里,僅供參考。

在后續的項目中,筆者會優先使用semi-synchronous replication的解決方案,如果數據真的非常重要,則會考慮使用gelera。

Monitor

前面我們說了使用replication機制來保證master當機之后盡可能的數據不丟失,但是我們不能等到master當了幾分鐘才知道出現問題了。所以一套好的監控工具是必不可少的。

當master當掉之后,monitor能快速的檢測到并做后續處理,譬如郵件通知管理員,或者通知守護程序快速進行failover。

通常,對于一個服務的監控,我們采用keepalived或者heartbeat的方式,這樣當master當機之后,我們能很方便的切換到備機上面。但他們仍然不能很即時的檢測到服務不可用。筆者的公司現階段使用的是keepalived的方式,但后續筆者更傾向于使用zookeeper來解決整個MySQL集群的monitor以及failover。

對于任何一個MySQL實例,我們都有一個對應的agent程序,agent跟該MySQL實例放到同一臺機器上面,并且定時的對MySQL實例發送ping命令檢測其可用性,同時該agent通過ephemeral的方式掛載到zookeeper上面。這樣,我們可以就能知道MySQL是否當機,主要有以下幾種情況:

  1. 機器當機,這樣MySQL以及agent都會當掉,agent與zookeeper連接自然斷開
  2. MySQL當掉,agent發現ping不通,主動斷開與zookeeper的連接
  3. Agent當掉,但MySQL未當

上面三種情況,我們都可以認為MySQL機器出現了問題,并且zookeeper能夠立即感知。agent與zookeeper斷開了連接,zookeeper觸發相應的children changed事件,監控到該事件的管控服務就可以做相應的處理。譬如如果是上面前兩種情況,管控服務就能自動進行failover,但如果是第三種,則可能不做處理,等待機器上面crontab或者supersivord等相關服務自動重啟agent。

使用zookeeper的好處在于它能很方便的對整個集群進行監控,并能即時的獲取整個集群的變化信息并觸發相應的事件通知感興趣的服務,同時協調多個服務進行相關處理。而這些是keepalived或者heartbeat做不到或者做起來太麻煩的。

使用zookeeper的問題在于部署起來較為復雜,同時如果進行了failover,如何讓應用程序獲取到最新的數據庫地址也是一個比較麻煩的問題。

對于部署問題,我們要保證一個MySQL搭配一個agent,幸好這年頭有了docker,所以真心很簡單。而對于第二個數據庫地址更改的問題,其實并不是使用了zookeeper才會有的,我們可以通知應用動態更新配置信息,VIP,或者使用proxy來解決。

雖然zookeeper的好處很多,但如果你的業務不復雜,譬如只有一個master,一個slave,zookeeper可能并不是最好的選擇,沒準keepalived就夠了。

Failover

通過monitor,我們可以很方便的進行MySQL監控,同時在MySQL當機之后通知相應的服務做failover處理,假設現在有這樣的一個MySQL集群,a為master,b,c為其slave,當a當掉之后,我們需要做failover,那么我們選擇b,c中的哪一個作為新的master呢?

原則很簡單,哪一個slave擁有最近最多的原master數據,就選哪一個作為新的master。我們可以通過show slave status這個命令來獲知哪一個slave擁有最新的數據。我們只需要比較兩個關鍵字段Master_Log_File以及Read_Master_Log_Pos,這兩個值代表了slave讀取到master哪一個binlog文件的哪一個位置,binlog的索引值越大,同時pos越大,則那一個slave就是能被提升為master。這里我們不討論多個slave可能會被提升為master的情況。

在前面的例子中,假設b被提升為master了,我們需要將c重新指向新的master b來開始復制。我們通過CHANGE MASTER TO來重新設置c的master,但是我們怎么知道要從b的binlog的哪一個文件,哪一個position開始復制呢?

GTID

為了解決這一個問題,MySQL 5.6之后引入了GTID的概念,即uuid:gid,uuid為MySQL server的uuid,是全局唯一的,而gid則是一個遞增的事務id,通過這兩個東西,我們就能唯一標示一個記錄到binlog中的事務。使用GTID,我們就能非常方便的進行failover的處理。

仍然是前面的例子,假設b此時讀取到的a最后一個GTID為3E11FA47-71CA-11E1-9E33-C80AA9429562:23,而c的為3E11FA47-71CA-11E1-9E33-C80AA9429562:15,當c指向新的master b的時候,我們通過GTID就可以知道,只要在b中的binlog中找到GTID為3E11FA47-71CA-11E1-9E33-C80AA9429562:15這個event,那么c就可以從它的下一個event的位置開始復制了。雖然查找binlog的方式仍然是順序查找,稍顯低效暴力,但比起我們自己去猜測哪一個filename和position,要方便太多了。

google很早也有了一個Global Transaction ID的補丁,不過只是使用的一個遞增的整形,LedisDB就借鑒了它的思路來實現failover,只不過google貌似現在也開始逐步遷移到MariaDB上面去了。

MariaDB的GTID實現跟MySQL 5.6是不一樣的,這點其實比較麻煩,對于我的MySQL工具集go-mysql來說,意味著要寫兩套不同的代碼來處理GTID的情況了。后續是否支持MariaDB再看情況吧。

Pseudo GTID

GTID雖然是一個好東西,但是僅限于MySQL 5.6+,當前仍然有大部分的業務使用的是5.6之前的版本,筆者的公司就是5.5的,而這些數據庫至少長時間也不會升級到5.6的。所以我們仍然需要一套好的機制來選擇master binlog的filename以及position。

最初,筆者打算研究MHA的實現,它采用的是首先復制relay log來補足缺失的event的方式,但筆者不怎么信任relay log,同時加之MHA采用的是perl,一個讓我完全看不懂的語言,所以放棄了繼續研究。

幸運的是,筆者遇到了orchestrator這個項目,這真的是一個非常神奇的項目,它采用了一種Pseudo GTID的方式,核心代碼就是這個

  1. create database if not exists meta;
  2.  
  3. drop event if exists meta.create_pseudo_gtid_view_event;
  4.  
  5. delimiter ;;
  6. create event if not exists
  7. meta.create_pseudo_gtid_view_event
  8. on schedule every 10 second starts current_timestamp
  9. on completion preserve
  10. enable
  11. do
  12. begin
  13. set @pseudo_gtid := uuid();
  14. set @_create_statement := concat('create or replace view meta.pseudo_gtid_view as select \'', @pseudo_gtid, '\' as pseudo_gtid_unique_val from dual');
  15. PREPARE st FROM @_create_statement;
  16. EXECUTE st;
  17. DEALLOCATE PREPARE st;
  18. end
  19. ;;
  20.  
  21. delimiter ;
  22.  
  23. set global event_scheduler := 1;

它在MySQL上面創建了一個事件,每隔10s,就將一個uuid寫入到一個view里面,而這個是會記錄到binlog中的,雖然我們仍然不能像GTID那樣直接定位到一個event,但也能定位到一個10s的區間了,這樣我們就能在很小的一個區間里面對比兩個MySQL的binlog了。

繼續上面的例子,假設c最后一次出現uuid的位置為s1,我們在b里面找到該uuid,位置為s2,然后依次對比后續的event,如果不一致,則可能出現了問題,停止復制。當遍歷到c最后一個binlog event之后,我們就能得到此時b下一個event對應的filename以及position了,然后讓c指向這個位置開始復制。

使用Pseudo GTID需要slave打開log-slave-update的選項,考慮到GTID也必須打開該選項,所以個人感覺完全可以接受。

后續,筆者自己實現的failover工具,將會采用這種Pseudo GTID的方式實現。

在《MySQL High Availability》這本書中,作者使用了另一種GTID的做法,每次commit的時候,需要在一個表里面記錄gtid,然后就通過這個gtid來找到對應的位置信息,只是這種方式需要業務MySQL客戶端的支持,筆者不很喜歡,就不采用了。

后記

MySQL HA一直是一個水比較深的領域,筆者僅僅列出了一些最近研究的東西,有些相關工具會盡量在go-mysql中實現。

更新

經過一段時間的思考與研究,筆者又有了很多心得與收獲,設計的MySQL HA跟先前有了很多不一樣的地方。后來發現,自己設計的這套HA方案,跟facebook這篇文章幾乎一樣,加之最近跟facebook的人聊天聽到他們也正在大力實施,所以感覺自己方向是對了。

新的HA,我會完全擁抱GTID,比較這玩意的出現就是為了解決原先replication那一堆問題的,所以我不會考慮非GTID的低版本MySQL了。幸運的是,我們項目已經將MySQL全部升級到5.6,完全支持GTID了。

不同于fb那篇文章將mysqlbinlog改造支持semi-sync replication協議,我是將go-mysql的replication庫支持semi-sync replication協議,這樣就能實時的將MySQL的binlog同步到一臺機器上面。這可能就是我和fb方案的唯一區別了。

只同步binlog速度鐵定比原生slave要快,畢竟少了執行binlog里面event的過程了,而另外真正的slaves,我們仍然使用最原始的同步方式,不使用semi-sync replication。然后我們通過MHA監控整個集群以及進行故障轉移處理。

以前我總認為MHA不好理解,但其實這是一個非常強大的工具,而且真正看perl,發現也還是看的懂得。MHA已經被很多公司用于生產環境,經受了檢驗,直接使用絕對比自己寫一個要劃算。所以后續我也不會考慮zookeeper,考慮自己寫agent了。

責任編輯:林師授 來源: 簡書
相關推薦

2010-12-08 08:57:11

keepalivedMySQL-HA

2015-10-22 10:28:45

MySQL高可用方案

2022-09-29 15:24:15

MySQL數據庫高可用

2019-10-17 09:05:21

MySQL數據庫高可用

2017-11-03 10:08:42

OracleMySQL高可用方案

2019-08-30 13:00:12

MySQL高可用數據庫

2024-06-26 13:31:54

MySQL高可用MHA

2020-03-04 13:35:23

高可用MySQL數據庫

2019-08-12 10:48:24

MySQLMHA架構應用場景

2022-05-17 11:06:44

數據庫MySQL系統

2017-11-06 11:10:11

數據庫OracleMySQL

2018-01-12 14:20:37

數據庫MySQL高可用架構

2022-02-27 14:37:53

MySQL主備數據

2019-08-27 15:56:44

MySQL 互聯網數據庫

2025-03-31 10:40:52

2014-07-11 09:43:34

MySQL集群

2017-04-19 22:58:28

MySQL分布式數據

2017-11-03 09:40:27

數據庫MySQLMHA

2025-07-23 08:15:40

2011-03-09 08:53:02

MySQL優化集群
點贊
收藏

51CTO技術棧公眾號

精品视频二区| 国产精品19乱码一区二区三区| 日本黄色一区| 亚洲三级在线看| 久久99精品久久久久久秒播放器| 色网站在线播放| 欧美精品一区二区三区中文字幕| 欧美人狂配大交3d怪物一区| 国产精品videossex国产高清| 少妇性bbb搡bbb爽爽爽欧美| 麻豆精品视频在线观看免费| 久久久久国产精品免费网站| 人妻一区二区视频| 亚洲专区**| 在线欧美日韩国产| 欧美精品在欧美一区二区| 青青草观看免费视频在线| 激情五月激情综合网| 日韩av电影免费观看高清| 伊人在线视频观看| 国产99久久久国产精品成人免费 | 日韩在线观看免费网站| 国产大学生视频| 色999韩欧美国产综合俺来也| 黄色成人av在线| 国产人妻互换一区二区| 国产98在线| 99国产精品久久久| 国产66精品久久久久999小说| www.五月婷婷.com| 99亚洲精品| 欧美激情xxxx| 五月天色婷婷丁香| 俺要去色综合狠狠| 亚洲欧洲偷拍精品| 欧美夫妇交换xxx| 亚洲大奶少妇| 欧美一区二区在线播放| 鲁一鲁一鲁一鲁一av| 亚洲成人激情社区| 婷婷综合五月天| 日本午夜激情视频| 欧美wwww| 亚洲综合激情网| 日本三级中文字幕在线观看| 麻豆影视国产在线观看| 欧美国产1区2区| 日本在线观看一区二区三区| 欧美视频免费一区二区三区| 成人一区二区三区视频在线观看 | 亚洲免费伊人电影| 国产一区一区三区| 午夜视频成人| 国产精品国产三级国产普通话99| 日本一区免费在线观看| 美州a亚洲一视本频v色道| 成人黄色av电影| 国产伦精品一区二区三区免费视频| av中文字幕免费在线观看| 久久黄色级2电影| 国产欧美精品在线播放| 国产精品免费无遮挡| 久久99国产乱子伦精品免费| 成人春色激情网| 国产麻豆免费视频| 国产黄色精品视频| 国产九色精品| 日韩毛片在线一区二区毛片| 久久久精品黄色| 五月天丁香综合久久国产 | 草民午夜欧美限制a级福利片| 久久久久麻豆v国产| 无需播放器亚洲| 久久国产加勒比精品无码| 欧美黑吊大战白妞| 伊人激情综合| 人妖精品videosex性欧美| 日本免费精品视频| 精品一区二区三区不卡| 91视频婷婷| 性xxxx视频播放免费| 99精品视频一区| 先锋影音亚洲资源| 97caopor国产在线视频| 亚洲第一主播视频| 日本成人在线免费视频| 日韩国产一二三区| 精品免费国产一区二区三区四区| 亚洲最大的黄色网| 欧美日韩在线观看视频小说| 久久久国产精品视频| 久久精品视频8| 日日摸夜夜添夜夜添精品视频| 国产欧美欧洲在线观看| 欧美一级做性受免费大片免费| 久久久精品免费免费| 国产成人精品免费看在线播放| 成人影院在线视频| 欧美日韩亚洲不卡| 先锋资源av在线| 国产精品88久久久久久| 51色欧美片视频在线观看| 亚洲专区在线播放| 91社区在线播放| 日本黄色a视频| 中文字幕不卡三区视频| 欧美一区二区三区日韩| 国产精品三级在线观看无码| 亚洲一区色图| 国产精品成人久久久久| 蜜臀av午夜精品| 成人免费视频在线观看| 国产第一页视频| 国产不卡精品在线| 一区二区三区黄色| 日韩字幕在线观看| 国产精品18久久久久| 欧美一进一出视频| 国产在线观看www| 在线播放中文一区| 少妇一级淫片免费放播放| 亚洲午夜精品一区 二区 三区| 国产成人+综合亚洲+天堂| 亚洲va久久久噜噜噜无码久久| 国产日产欧美一区| 久久网站免费视频| 国产精品久久久久久久久久白浆| 日韩在线视频线视频免费网站| 国产性猛交╳xxx乱大交| 国产激情一区二区三区| 日本成人性视频| 日产精品一区| 亚洲女人天堂色在线7777| 久久久久久久黄色| 国产一区二区三区精品视频| 亚洲图片欧洲图片日韩av| 欧美片第1页| 日韩激情视频在线播放| 91精品国产乱码久久久张津瑜| 国产一区二区三区免费看| 视频一区二区视频| 国产一区二区三区精品在线观看| 在线看日韩欧美| 中文字幕一区二区三区四区视频 | 中文字幕少妇一区二区三区| 啦啦啦免费高清视频在线观看| 9久草视频在线视频精品| 日本阿v视频在线观看| 66精品视频在线观看| 久久91精品国产91久久久| 99视频免费看| 亚洲一区二区综合| 日本道中文字幕| 亚洲国产高清一区| 国产丝袜不卡| 亚洲最新无码中文字幕久久| 日韩精品一区二区三区第95| 99久久精品国产亚洲| 日本在线免费中文字幕| 亚洲人成亚洲人成在线观看图片| 午夜av中文字幕| 亚洲国产一成人久久精品| 亚洲qvod图片区电影| 黄视频网站在线| 91精品国产综合久久精品图片| www日韩在线| 国产精品一级二级三级| 日本大片免费看| 精品亚洲免a| 日韩免费在线视频| 第一福利在线| 91精品国产综合久久久蜜臀图片 | 日韩亚洲视频在线观看| 欧美在线免费播放| 成人信息集中地| 国产电影一区在线| 妞干网在线视频观看| 色婷婷综合久久久久久| 国产精品福利无圣光在线一区| 亚洲成人三级| 精品久久一区二区| 男人的天堂av网站| 亚洲精品大片www| 日本黄色动态图| 日韩福利视频导航| 久久亚洲国产成人精品无码区| 天堂网av成人| 91精品视频免费| 3344国产永久在线观看视频| 亚洲一区二区精品| 精品人妻午夜一区二区三区四区 | jizz久久精品永久免费| 日本精品在线视频| 91麻豆国产福利在线观看宅福利| 欧美精品一区二区三区在线 | 日韩wuma| 1313精品午夜理伦电影| 日韩暖暖在线视频| 污污片在线免费视频| 亚洲丝袜av一区| 亚洲AV无码精品国产| 欧洲中文字幕精品| 日本三级黄色大片| 成人欧美一区二区三区视频网页| 朝桐光av一区二区三区| 国产在线视频一区二区三区| 男人天堂1024| 欧美日本久久| 亚洲欧洲国产精品久久| 色天下一区二区三区| 99国产在线| 免费高清视频在线一区| 韩国视频理论视频久久| 欧美激情视频在线播放| 亚洲欧洲日产国产网站| 日韩在线视频免费| 正在播放亚洲一区| 中文字幕+乱码+中文字幕明步| 亚洲超碰精品一区二区| 精品国产视频在线观看| 欧美国产在线观看| 中文字幕丰满孑伦无码专区| 粉嫩av一区二区三区在线播放| 97超碰人人爽| 日韩av一区二区在线影视| 亚洲美免无码中文字幕在线| 一级毛片免费高清中文字幕久久网| 日本婷婷久久久久久久久一区二区 | 国产原创av在线| 日韩av在线看| 欧美 日韩 综合| 日韩欧美国产综合| 国产精品无码久久av| 欧美在线啊v一区| 日本熟女毛茸茸| 日韩欧美在线视频观看| 精品成人久久久| 亚洲韩国一区二区三区| 免费视频一二三区| 亚洲综合自拍偷拍| 欧美日韩精品一区二区三区视频播放| 国产精品国产三级国产普通话三级| 一区二区三区在线观看免费视频| xnxx国产精品| 99久久久无码国产精品性| 99久久777色| 无遮挡aaaaa大片免费看| 91在线视频观看| 青青草视频成人| 久久综合久久99| 日本黄色网址大全| 久久女同精品一区二区| 亚洲 小说 欧美 激情 另类| 2021久久国产精品不只是精品| 青青草视频成人| 欧美精彩视频一区二区三区| www.涩涩爱| 亚洲欧美在线另类| 国产大片免费看| 亚洲影视资源网| 日韩精品一区二区三| 精品久久久一区二区| 在线免费黄色av| 欧美丝袜丝交足nylons图片| 中文字幕 人妻熟女| 制服丝袜激情欧洲亚洲| 精品国产av一区二区| 亚洲第一av网| 国产永久免费高清在线观看视频| 日韩在线免费观看视频| 怡红院在线播放| 国产69精品久久久久9999| 亚洲性色av| 成人午夜小视频| 精品国产一区二区三区不卡蜜臂| 欧美午夜视频在线| 91精品啪在线观看国产81旧版 | 成人影院在线播放| 欧美一级高清免费| 欧美一级做一级爱a做片性| 99在线影院| 免费观看久久av| 欧美 另类 交| 午夜在线精品偷拍| 制服丝袜综合网| 成人永久aaa| 国产调教在线观看| 亚洲综合色自拍一区| 国产污视频网站| 日韩一区二区在线播放| 头脑特工队2在线播放| 日韩视频在线免费| 国产精品蜜芽在线观看| 国产日韩精品一区二区| 欧美久久香蕉| 中文字幕免费在线不卡| 国产婷婷精品| 992tv人人草| 国产三级一区二区三区| 九九免费精品视频| 欧美视频一区在线观看| 午夜av免费观看| 美女黄色丝袜一区| 国产欧美自拍| 免费中文日韩| 亚洲欧洲一区二区天堂久久| 制服丝袜中文字幕第一页| 久久亚洲一区二区三区四区| 久久机热这里只有精品| 欧美日韩小视频| 大地资源中文在线观看免费版| 欧美精品久久久久久久久久| 日日狠狠久久| 日本视频精品一区| 国产精品美女久久久| xxxxwww一片| 亚洲三级免费观看| 一级黄色免费片| 国产亚洲人成a一在线v站| 乡村艳史在线观看| 国产精品久久久久久久久久久久冷| 国产精品精品国产一区二区| 国产一线二线三线在线观看| 久久久亚洲欧洲日产国码αv| 一区二区三区免费高清视频 | 成人看片人aa| 成人免费在线观看av| www.欧美日本| 91老师国产黑色丝袜在线| 日本少妇在线观看| 精品国产1区二区| 怡红院红怡院欧美aⅴ怡春院| 91青草视频久久| 亚洲a一区二区三区| 国产一级免费大片| 亚洲日穴在线视频| 国产又大又黄的视频| 在线观看久久久久久| 亚洲精品一区| 久久大片网站| 国产九九精品| 免费的av网站| 欧美午夜影院在线视频| 四虎永久在线精品免费网址| 久久琪琪电影院| 成人av综合网| 日韩不卡一二区| 国产一区视频导航| 日韩欧美123区| 日韩欧美一区在线观看| 里番在线观看网站| 亚洲最大福利视频| 在线精品小视频| 久久无码专区国产精品s| 亚洲青青青在线视频| 97超碰国产在线| 欧美另类极品videosbestfree| a一区二区三区亚洲| 成人小视频在线观看免费| 国产麻豆午夜三级精品| 国产在线观看免费视频今夜| 日韩欧美国产综合| 白白色在线观看| 免费看成人午夜电影| 日韩在线一区二区| 午夜爽爽爽男女免费观看| 91精品国产综合久久久久久漫画| 午夜伦理在线视频| 国产精品10p综合二区| 99精品国产99久久久久久福利| 亚洲欧美色图视频| 色综合久久66| 成人黄视频在线观看| 99国产在线观看| 老司机精品视频网站| 影音先锋男人在线| 日韩欧美国产电影| 超碰资源在线| 美国av一区二区三区| 精品一区二区免费| 99热精品免费| 亚洲男人天天操| 黄色成人在线观看网站| 99在线免费视频观看| 99久久婷婷国产综合精品| 无码人妻精品一区二| 尤物yw午夜国产精品视频| 日韩三级一区| 欧美日韩黄色一级片| 国产亚洲一本大道中文在线| 国产黄色av片| 性色av一区二区三区红粉影视| 日韩欧美一区二区三区免费看| 亚洲图色中文字幕| 亚洲一区二区欧美日韩| 欧美美女色图| 国产精品欧美激情| 亚洲精品1区2区| 免费成人深夜天涯网站| 亚洲国产精品久久|