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

ActiveMQ架構設計與實踐,需要一萬字

開發 架構
ActiveMQ是最常用、特性最豐富的消息中間件,通常用于消息異步通信、削峰解耦等多種場景,是JMS規范的實現者之一。功能豐富到什么程度呢?支持大部分消息協議,而且支持XA。

[[320409]]

 xjjdog以前寫過很多關于消息隊列的文章。今天介紹一下ActiveMQ。

ActiveMQ是最常用、特性最豐富的消息中間件,通常用于消息異步通信、削峰解耦等多種場景,是JMS規范的實現者之一。功能豐富到什么程度呢?支持大部分消息協議,而且支持XA。

它也是比較古老的消息隊列,雖然最近新版本改名為Artemis,也不能去掉它身上滄桑的味道。就這么一個重量級的東西,在很多公司尾大不掉,具體架構設計讓我為你娓娓道來。或許你應該從人性上,而不是技術上,來考慮一下它的存在性。

以下是正文。

1、架構設計概要

ActiveMQ提供兩種可供實施的架構模型:“M-S”和“network bridge”;其中“M-S”是HA方案,“網絡轉發橋”用于實現“分布式隊列”。

1.1、M-S

Master-Slave模型下,通常需要2+個ActiveMQ實例,任何時候只有一個實例為Master,向Client提供”生產”、“消費”服務,Slaves用于做backup或者等待Failover時角色接管。

M-S模型是最通用的架構模型,它提供了“高可用”特性,當Master失效后,Slaves之一提升為master繼續提供服務,且Failover之后消息仍然可以恢復。(根據底層存儲不同,有可能會有消息的丟失)。

有以下兩方面要點:

第一,M-S架構中,涉及到選舉問題,選舉的首要條件就是需要有“排它鎖”的支持。排它鎖,可以有共享文件鎖、JDBC數據庫排它鎖、JDBC鎖租約、zookeeper分布式鎖等方式實現。這取決你的底層存儲的機制。

第二,M-S架構中,消息存儲的機制有多種,“共享文件存儲”、“JDBC”存儲、“非共享存儲”等。不同存儲機制,各有優缺點。在使用的時候一定要權衡。

1.2、網絡轉發橋(network bridge)

無論如何,一組M-S所能承載的消息量、Client并發級別總是有限的,當我們的消息規模達到單機的上限時,就應該使用基于集群的方式,將消息、Client進行分布式和負載均衡。

ActiveMQ提供了“網絡轉發橋”模式,核心思想是:

1、集群中多個broker之間,通過“連接”互相通信,并將消息在多個Broker之間轉發和存儲,提供存儲層面的“負載均衡”。

2、根據Client的并發情況,對Client進行動態平衡,最終實現支持大規模生產者、消費者。

這和Kafka的核心思想是相似的。

2、M-S架構設計詳解

2.1、非共享存儲模式

集群中有2+個ActiveMQ實例,每個實例單獨存儲數據,Master將消息保存在本地后,并將消息以異步的方式轉發給Slaves。

Master和slaves獨立部署,各自負責自己的存儲,Master與slaves之間通過“network connector”連接,通常是Master單向與slaves建立連接。master上接收到的消息將會全量轉發給slaves。

有下面幾個要點:

1)任何時候只有Master向Clients提供服務,slaves僅作backup。古老的影子節點方式。

2)slaves上存儲的消息,有短暫的延遲。

3)master永遠是master,當master失效時,我們不能隨意進行角色切換,最佳實施方式就是重啟master,只有當master物理失效時才會考慮將slave提升為master。(這個真是弱爆了)

4)當slaves需要提升為master時,應該確保此slaves的消息是最新的。

5)如果slaves離線,那么在重啟slaves之前,還應該將master的數據手動同步給slaves。否則slave離線期間的數據,將不會在slaves上復現。

6)Client端不支持failover協議;即Client只會與master建立連接。

這種架構,是最原始的架構,易于實時,但是問題比較嚴重,缺乏Failover機制,消息的可靠性我們無法完全保障,因為master與slaves角色切換沒有仲裁者、或者說缺少分布式排它鎖機制。在Production環境中,不建議采用,如果你能容忍failover期間SLA水平降級的話,也可以作為備選。

2.2、共享文件存儲

即采用SAN(GFS)技術,基于網絡的全局共享文件系統模式(真是一個名次制造機器),這種架構簡單易用,但是可架構、可設計的能力較弱,在Production環境下酌情采用。

SAN存儲,可以參考GFS。其中master和slaves配置保持一致,每個broker都需要有唯一的brokerName;broker實例在啟動時首先通過SAN獲取文件系統的排它鎖,獲取lock的實例將成為master,其他brokers將等待lock、并間歇性的嘗試獲取鎖,slaves不提供Clients服務;因為brokers將數據寫入GFS,所以在failover之后,新的master獲取的數據視圖仍然與原master保持一致,畢竟GFS是全局的共享文件系統。

我們通常使用kahaDB作為存儲引擎,即使用日志文件方式;kahaDB的存儲效率非常的高,TPS可以高達2W左右,是一種高效的、數據恢復能力強的存儲機制。

這種架構模式下,支持failover,當master失效后,Clients能夠通過failover協議與新的master重連,服務中斷時間很短。因為基于GFS存儲,所以數據總是保存在遠端共享存儲區域,所以不存在數據丟失的問題。

唯一的問題,就是GFS(SAN)的穩定性問題。這一點需要確定,SAN區域中的節點之間網絡通信必須穩定且高效。(自己搭建比如NFS服務,或者基于AWS EFS)。

這不過是把一個問題轉移到另外一個組件上而已。

2.3、基于JDBC共享存儲

我們可以將支持JDBC的數據庫作為共享存儲層,即master將數據寫入數據庫,本地不保存任何數據,在failover期間,slave提升為master之后,新master即可從數據庫中讀取數據,這也意味著在整個周期中,master與slaves的數據視圖是一致的(同SAN架構),所以數據的恢復能力和一致性是可以保障的,也不存在數據丟失的情況(在存儲層)。

但是JDBC存儲機制,性能實在是太低,與kahaDB這種基于日志存儲層相比,性能相差近10倍左右。

Oh my god。不過在一些低并發,純粹解耦的場景是可以的。用在高并發互聯網就是找死(互聯網不一定意味著就是高并發的)。

如果你的業務需求,表明數據丟失是難以容忍的、且SLA水平很高很高,那么JDBC或許是你最好的選擇。

既然JDBC數據庫為最終存儲層,那么我們很多時候需要關注數據庫的可用性問題,比如數據庫基于M-S模式等;如果數據庫失效,將導致ActiveMQ集群不可用。

JDBC存儲面臨最大的問題就是“TPS”(吞吐能力),確實比kahaDB低數倍,如果你的業務存在高峰,“削峰”的策略可以首先將消息寫入本地文件(然后異步同步給AcitveMQ Broker)。

這個時候我總是有個疑問。直接使用數據庫就好了,您廢這么大勁上個ActiveMQ又是何苦呢。可能是為了設計而設計吧。

3、network bridges模式架構

這種架構模式,主要是應對大規模Clients、高密度的消息增量的場景;它將以集群的模式,承載較大數據量的應用。

它有下面的要求和特點。

1)有大量Producers、Consumers客戶端接入。只所以如此,或許是因為消息通道(Topic,Queue)在水平擴張的方向上,已經沒有太大的拆分可能性。所以一股腦擠在一塊。

2)或許消息的增量,是很龐大的,特別是一些“非持久化消息”。我們寄希望于構建“分布式隊列”架構。也就是其他系統解決不了的問題,希望消息隊列能夠緩沖一下。

3)因為集群規模較大,我們可能允許集群某些節點短暫的離線,但數據恢復機制仍然需要提供,總體而言,集群仍然提供較高的可用性。

4)集群支持Clients的負載均衡,比如有多個producers時,這些producers會被動態的在多個brokers之間平衡。否則分配不均就會造成風險。

5)支持failover,即當某個broker失效時,Clients可以與其他brokers重連;當集群中有的新的brokers加入時,集群的拓撲也可以動態的通知給Clients。這個是運維人員最喜歡的,誰也不想大半夜起床搗鼓機器。

集群有多個子Groups構成,每個Group為M-S模式、共享存儲;多個Groups之間基于“network Connector”建立連接(masterslave協議),通常為雙向連接,所有的Groups之間彼此相連,Groups之間形成“訂閱”關系,比如G2在邏輯上為G1的訂閱者(訂閱的策略是根據各個Broker上消費者的Destination列表進行分類),消息的轉發原理也是基于此。

對于Client而言,仍然支持failover,failover協議中可以包含集群中“多數派”的節點地址。

對于Topic訂閱者的消息,將會在所有Group中復制存儲;對于Queue的消息,將會在brokers之間轉發,并最終到達Consumer所在的節點。

Producers和Consumers可以與任何Group中的Master建立連接并進行消息通信,當Brokers集群拓撲變化時、Producers或Consumers的個數變化時,將會動態平衡Clients的連接位置。Brokers之間通過“advisory”機制來同步Clients的連接信息,比如新的Consumers加入,Broker將會發送advisory消息(內部的通道)通知其他brokers。

集群模式提供了較好的可用性擔保能力,在某些特性上或許需要權衡,比如Queue消息的有序性將會打破,因為同一個Queue的多個Consumer可能位于不同的Group上,如果某個Group實現,那么保存在其上的消息只有當其恢復后才能對Clients可見。

4、性能評估

綜上所述,在Production環境中,我們能夠真正意義上采用的架構,只有三種:

1)基于JDBC的共享數據庫模式:HA架構,單一Group,Group中包含一個master和任意多個slaves;所有Brokers之間通過遠端共享數據庫存取數據。對客戶端而言支持Failover協議。

2)基于Network Bridge構建分布式消息集群:Cluster架構,集群中有多個Group,每個Group均為M-S架構、基于共享存儲;對于Clients而言,支持負載均衡和Failover;消息從Producer出發,到達Broker節點,Broker根據“集群中Consumers分布”,將消息轉發給Consumers所在的Broker上,實現消息的按需流動。

3)基于Network Bridge的簡化改造:與2)類似,但是每個“Group”只有一個Broker節點,此Broker基于kahaDB本地文件存儲,即相對于2)Group缺少了HA特性;當Broker節點失效時,其上的消息將不可見、直到Broker恢復正常。這種簡化版的架構模式,通過增加機器的數量、細分消息的分布,來降低數據影響故障影響的規模,因為其基于kahaDB本地日志存儲,所以性能很高。

4.1、共享JDBC測試結果

生產端配置。

  1. Producer端(壓力輸出機器):數量:4臺   
  2.     硬件配置:16Core、32G,云主機   
  3.     軟件配置:JDK 1.8,JVM 24G   
  4.     并發與線程:32并發線程,連接池為128,發送文本消息,每個消息128個字符實體。消息:持久化,Queue,非事務 

Broker端配置。

  1. Broker端(壓力承載)   
  2.     數量:2臺   
  3.     硬件配置:16Core、32G,云主機   
  4.     軟件配置:JDK 1.8,JVM 24G   
  5.     架構模式:M-S模式,開啟異步轉發、關閉FlowControl,數據庫連接池為1024 

存儲層配置。

  1. 數據庫(存儲層)   
  2.     數量:2臺   
  3.     硬件配置:16Core、32G,SSD(IOPS 3000),云主機   
  4.     架構模式:M-S   
  5.     數據庫:MySQL 

測試結果:

1、消息生產效率:1500 TPS

2、Broker負載情況:CPU 30%,內存使用率11%

3、MySQL負載情況:CPU 46%,IO_WAIT 25%

結論:

1、基于共享JDBC存儲架構,性能確實較低。

2、影響性能的關鍵點,就是數據庫的并發IO能力,當TPS在1800左右時,數據庫的磁盤(包括slave同步IO)已經出現較高的IO_WAIT。

3、通過升級磁盤、增加IOPS,可以有效提升TPS指標,建議同時提高CPU的個數。

打算采用數據庫來實現HA的同學們,你們看到這操蛋的TPS了么?

4.2、基于非共享文件存儲的測試結果

測試單個ActiveMQ,基于kahaDB存儲,kahaDB分為兩種數據刷盤模式:

1)逐條消息刷盤

2)每隔一秒刷盤

  1. <persistenceAdapter>   
  2.     <kahaDB directory="${activemq.data}/kahadb" journalDiskSyncStrategy="periodic" journalDiskSyncInterval="2000"/>  </persistenceAdapter> 

壓力測試環境與1)保持一致,只是ActiveMQ的機器的磁盤更換為:SSD (600 IOPS)。

測試結果:

1)逐條刷新磁盤

TPS:660

Broker IO_WAIT:19%

2)每隔一秒刷新磁盤

TPS:9800

Broker IO_WAIT:1.6% (原則上優化磁盤和IOPS等,應該還能提升)

由此可見,基于日志文件的存儲性能比JDBC高了接近5倍,其中逐條刷盤策略,消息的可靠性是最高的,但是性能卻低于JDBC。如果基于“每隔一秒刷盤”策略,在極端情況下,可能導致最近一秒的數據丟失。

還不錯,但離著kafka這樣的MQ還遠著呢。

4.3、基于轉發橋的測試結果

基于轉發橋的架構,實施成本較高,維護成本較高,架構復雜度也相對較大。本人根據實踐經驗,不推薦使用此模式。如果你希望嘗試,也無妨,畢竟它是ActiveMQ官方推薦的“分布式隊列實現機制”,從原理上它可以支持較大規模的消息存儲。

但是,我有更輕量級的,干么用你呢?

4.4、優秀實踐

所以本優秀實踐是在以上測試的基礎上得來的。

如果我們最終不得不面對“海量消息”的存儲,在按照業務進行隊列拆分之后,仍然需要面臨某個單純業務的消息量是“單個M-S架構”無法滿足的。而我們又不愿意承擔Cluster模式復雜度所帶來的潛在問題,此時,可以采用比較通用的“邏輯分布式”機制。

1)構建多個M-S組,但是每個Group之間在物理上沒有關聯,即它們之間互不通信,且不共享存儲。

2)在Producer的客戶端,增加“router”層, 即開發一個Client Wrapper,此wrapper提供了Producer常用的接口,且持有多個M-S組的ConnectionFactory,在通過底層通道發送消息之前,根據message中的某個property、或者指定的KEY,進行hash計算,進而選擇相應的連接(或者Spring的包裝類),然后發送消息。這有點類似于基于客戶端的數據庫讀寫分離的策略。

3)對于Consumers,則只需要配置多個ConnectionFactory即可。

4)經過上述實踐,將消息sharding到多個M-S組,解決了消息發送效率的問題,且邏輯集群可以進行較大規模的擴展。而且對Client是透明的。

5)如果你不想開發shard-router層面,我們仍然可以基于failover協議來實現“邏輯分布式”的消息散列存儲,此時需要在failover協議中指明所有Groups的brokers節點列表,且randomize=true。這種用法,可以實現消息在多個Group上存儲,唯一遺憾的地方時,因為缺乏“自動負載均衡策略”,可能導致消息分布不均。

配置如下:

  1. failover:(tcp://G1.master,tcp://G1.slave,tcp://G2.master,tcp://G2.slave)?randomize=true   
  2. //randomize必須為true 

End

是的,我寫這一切的目的,就是為了讓你放棄ActiveMQ的。雖然我對它比較熟,但我知道誰更優秀。

希望改名后的Artemis,能夠給它帶來一點青春的氣息吧。

作者簡介:小姐姐味道 (xjjdog),一個不允許程序員走彎路的公眾號。聚焦基礎架構和Linux。十年架構,日百億流量,與你探討高并發世界,給你不一樣的味道。

 

責任編輯:武曉燕 來源: 小姐姐味道
相關推薦

2025-09-12 15:50:54

2020-12-04 06:36:04

協議Redis數據量

2017-06-10 11:13:39

數據庫架構數據庫集群

2023-04-06 08:52:54

Sentinel分布式系統

2022-02-18 11:13:53

監控架構系統

2023-03-09 09:31:58

架構設計vivo

2023-02-06 18:35:05

架構探測技術

2017-06-08 11:06:03

數據庫架構分組

2022-07-07 10:19:05

數據畫像

2009-06-22 14:48:21

DRY架構設計

2020-07-10 08:50:37

大數據銀行技術

2022-07-11 10:08:34

大數據平臺機房

2023-03-27 08:05:27

數字化轉型MLOps

2024-06-18 08:07:50

存儲架構設計

2020-12-28 12:22:12

微服務架構微服務API

2022-06-01 11:14:22

云原生安全架構設計

2022-11-22 08:42:38

數據庫

2016-10-31 16:18:56

架構 設計

2025-11-05 01:00:00

架構業務系統MVC

2021-11-11 10:48:35

架構運維技術
點贊
收藏

51CTO技術棧公眾號

亚洲欧美国内爽妇网| 国产精品你懂的在线| 91sao在线观看国产| 国精产品一区一区三区免费视频| 国产精品蜜芽在线观看| 久久亚洲私人国产精品va媚药| 国产精品久久久久久久久久久新郎 | 亚洲成人三级| 国产成人激情av| 日本精品视频在线播放| 99视频只有精品| 亚洲动漫在线观看| 678五月天丁香亚洲综合网| 日本中文字幕亚洲| 色的视频在线免费看| 99精品视频一区| 成人免费自拍视频| 中文字幕第15页| 日韩久久视频| 国产视频精品久久久| 国产人妻精品久久久久野外| 裤袜国产欧美精品一区| 亚洲欧美二区三区| 日本免费高清一区| 亚洲av无码乱码国产精品久久| 久久久久国产精品午夜一区| 欧美国产日本在线| 日韩女同一区二区三区| 大陆精大陆国产国语精品| 欧美午夜精品一区二区蜜桃| 日韩精品xxxx| 免费网站在线观看人| 亚洲国产高清在线观看视频| 精品无人乱码一区二区三区的优势| 91影院在线播放| 天使萌一区二区三区免费观看| 欧美大秀在线观看| 午夜激情福利电影| 成人婷婷网色偷偷亚洲男人的天堂| 亚洲第一天堂av| 无码人妻丰满熟妇区毛片蜜桃精品 | 亚洲欧美自拍偷拍色图| 欧美下载看逼逼| 天堂资源中文在线| 成人app下载| 成人做爰66片免费看网站| 国产欧美日韩成人| 激情六月婷婷综合| 国产精品一区二区三区免费视频 | 日韩一区二区免费在线观看| 亚洲人视频在线| 国产黄色精品| 欧美色视频一区| 日韩精品你懂的| 亚洲精品555| 欧美无砖砖区免费| 亚洲色图久久久| 777午夜精品电影免费看| 日韩欧美国产成人| 18禁男女爽爽爽午夜网站免费 | 亚洲一区二区三区影院| 免费的av在线| 先锋影音在线资源站91| 一区二区三区欧美亚洲| 日韩中文字幕亚洲精品欧美| 一区二区三区伦理| 亚洲品质自拍视频| 国产精品三级一区二区| 在线中文字幕-区二区三区四区 | 一二三在线视频| av网址在线免费观看| 亚洲伦在线观看| 日韩视频 中文字幕| 日本三级在线观看网站| 亚洲一区二区三区美女| 欧美二区在线视频| 美女一区网站| 欧美日韩二区三区| 又色又爽又黄18网站| 秋霞在线一区| 一区二区亚洲欧洲国产日韩| 亚洲精品一区二区三区婷婷月| 精品裸体舞一区二区三区| www黄色av| 欧美xxxx做受欧美护士| 欧美日韩免费一区二区三区视频| 亚洲欧美日本一区二区三区| 中文成人在线| 精品999久久久| 欧美老熟妇乱大交xxxxx| 日韩欧美一区二区三区在线视频 | 小向美奈子av| 天天做天天爱天天综合网| 国产精品久久免费看| 高清视频一区二区三区| 青春有你2免费观看完整版在线播放高清 | 一区二区三区高清在线| 国产精品午夜视频| 97人人爽人人爽人人爽| 懂色av中文一区二区三区 | 欧美视频在线观看网站| 高清不卡av| 欧美一区二区视频观看视频| 国产乱了高清露脸对白| 欧美成人激情| 97色在线视频| 91丨九色丨蝌蚪丨对白| 91女厕偷拍女厕偷拍高清| 中文网丁香综合网| 九色porny视频在线观看| 欧美日韩的一区二区| 国产 中文 字幕 日韩 在线| 亚洲成人99| 国产99久久久欧美黑人| 韩国中文字幕hd久久精品| 国产精品久久久久久久久久久免费看 | 国产精品三级网站| 天天操天天插天天射| 自拍偷拍亚洲综合| 老熟妇仑乱视频一区二区| 亚洲三级av| 精品国产一区二区三区久久久狼 | 久久精品1区| 国产高清精品一区二区| 久久bbxx| 欧美影视一区二区三区| 国产乱了高清露脸对白| 狠狠色丁香久久综合频道| 国产主播精品在线| 二区三区在线| 色94色欧美sute亚洲线路二| 艳妇乳肉豪妇荡乳xxx| 亚洲欧美亚洲| 91亚洲国产成人久久精品网站| 国产中文字幕在线观看| 丰满岳妇乱一区二区三区| 人妻 丝袜美腿 中文字幕| 一区二区三区毛片免费| 国产精品丝袜一区二区三区| 国产亚洲依依| 色老汉av一区二区三区| a视频免费观看| 99av国产精品欲麻豆| 国产精品二区三区四区| 国产福利在线免费观看| 欧美一区二区在线不卡| 性欧美疯狂猛交69hd| 精品一区二区三区影院在线午夜 | 影音先锋中文字幕一区| 亚洲va欧美va国产综合剧情| 黄色网在线播放| 69堂国产成人免费视频| 91传媒免费观看| 国产在线精品一区二区夜色| 超碰成人在线免费观看| 91精品亚洲一区在线观看| 久久精品国产亚洲一区二区| 97人妻人人澡人人爽人人精品 | 99热国产在线观看| 95精品视频在线| 少妇高潮喷水久久久久久久久久| 色婷婷狠狠五月综合天色拍 | 亚洲一区999| 成人黄色免费网| 中文字幕亚洲一区二区va在线| 不卡的在线视频| 亚洲精品一区二区妖精| 97超级在线观看免费高清完整版电视剧| 亚洲精品天堂| 亚洲精品短视频| 伊人中文字幕在线观看| 欧美国产精品劲爆| 久久精品国产99久久99久久久| 亚洲欧美日韩高清在线| 国产高清一区视频| 成人欧美一区二区三区的电影| 国产性猛交xxxx免费看久久| 国产又黄又粗又长| 亚洲狠狠爱一区二区三区| 少妇被狂c下部羞羞漫画| 久久久蜜桃一区二区人| 自拍偷拍一区二区三区| 91综合久久爱com| 欧美中文在线观看国产| 日本不卡不卡| 亚洲国产精品人人爽夜夜爽| 久草热在线观看| 亚洲精品免费看| 中文字幕丰满乱子伦无码专区| 麻豆精品视频在线观看视频| 久草视频这里只有精品| 精品不卡一区| 99在线看视频| 亚洲mmav| 欧美黄色性视频| 国产精品99999| 欧美mv日韩mv| 精品一区二三区| 夜夜嗨av一区二区三区网页 | 国产精品国产精品国产专区不蜜| 国产精品无码自拍| 日韩成人一级大片| av无码久久久久久不卡网站| 精品视频亚洲| 精品国产乱码久久久久久蜜柚| 国产成人精品一区二区三区在线| 久久露脸国产精品| 毛片在线播放a| 亚洲欧美激情一区| 亚洲春色一区二区三区| 欧美在线看片a免费观看| 国产精品第72页| 综合久久综合久久| www.狠狠爱| 99国产精品视频免费观看| 一本色道久久亚洲综合精品蜜桃| 亚洲一区二区三区高清不卡| 女女百合国产免费网站| 日本黄色精品| 欧美lavv| 日韩深夜福利| 国产精品日韩二区| 成人黄色理论片| 国产精品视频免费在线| 性爽视频在线| …久久精品99久久香蕉国产| 四虎av在线| 精品国产一区二区三区久久久| 国产免费av高清在线| 日韩精品中文字幕视频在线| 亚洲精品国产av| 欧美一区二区三区婷婷月色| 在线观看免费中文字幕| 在线一区二区三区| 日韩熟女一区二区| 欧美日韩亚洲高清| 国产成人在线免费观看视频| 亚洲一区在线观看免费观看电影高清| 在线日韩国产网站| 国产精品乱人伦中文| 国产精品18在线| 欧美高清在线一区二区| 少妇无套高潮一二三区| 国产亚洲一区二区三区在线观看 | 国产嫩草影院久久久久| 熟女俱乐部一区二区| 久久精品在这里| 国产aⅴ激情无码久久久无码| 99精品久久久久久| 极品粉嫩小仙女高潮喷水久久| 91在线丨porny丨国产| 伊人网综合视频| 91在线精品秘密一区二区| 日韩av无码一区二区三区不卡| www.在线欧美| 人人妻人人澡人人爽人人精品| 26uuu国产在线精品一区二区| 一区二区不卡免费视频| 久久久九九九九| 亚洲最大成人综合网| 国产精品久久久久永久免费观看| 久久久99999| 亚洲黄色免费网站| 福利一区二区三区四区| 欧美性videos高清精品| 波多野结衣午夜| 欧美理论片在线| www.久久成人| 亚洲黄色av女优在线观看| 欧美xxx.com| 久久精品成人动漫| 日本动漫理论片在线观看网站 | 懂色中文一区二区在线播放| 一本加勒比波多野结衣| 久久免费看少妇高潮| 欧美xxxx精品| 一区二区三区在线视频观看 | 免费看污片网站| 国产精品电影一区二区三区| 私库av在线播放| 欧美日韩视频免费播放| 国产精品欧美综合| 欧美一区二区三区视频在线 | 久久精品久久久久久久| 欧美日韩国产电影| 韩国av永久免费| 最新国产成人av网站网址麻豆| 久久久久久久久免费视频| 国产综合在线视频| 国产精品成人国产| 国产乱码精品一区二区三区卡| 青青草国产免费一区二区下载 | 国产日韩一区二区三区| 国产精品一区2区3区| 最近中文字幕免费mv| 亚洲欧洲综合| 日韩成人精品视频在线观看| av在线播放不卡| 欧美爱爱免费视频| 精品人伦一区二区三区蜜桃免费| 在线中文字幕网站| 欧美精品一区二区蜜臀亚洲| 3d成人动漫在线| 97人人做人人爱| www一区二区三区| 欧美久久久久久| 亚洲激情社区| 手机在线视频一区| 国产欧美精品一区二区色综合朱莉| 麻豆91精品91久久久| 欧美日高清视频| 青青草免费观看免费视频在线| 欧美区二区三区| 日韩黄色碟片| 欧美一区二区在线| 亚洲韩日在线| 久久久久无码精品| 中文字幕精品在线不卡| 三级视频在线观看| 亚洲成人av资源网| 国产在线69| 国产精品丝袜久久久久久高清| 嫩草一区二区三区| 亚洲 欧美 日韩 国产综合 在线| 国产一区二区影院| 国精品人伦一区二区三区蜜桃| 日本乱码高清不卡字幕| 日本在线一二三| 777精品视频| 免费看成人人体视频| 99久久免费观看| 国产精品中文字幕欧美| 精品国产精品国产精品| 欧美日本乱大交xxxxx| 超碰国产在线观看| 国产ts一区二区| 中国av一区| 欧美国产激情视频| 91蝌蚪porny成人天涯| 日韩久久精品视频| 亚洲国产三级网| av3级在线| 韩国一区二区三区美女美女秀| 韩国欧美一区| 亚洲色图欧美另类| 亚洲18色成人| 天天综合天天综合| 热99久久精品| 激情综合网五月| 日本a√在线观看| 国产精品久久久久影院老司 | 免费av不卡在线观看| 成人区精品一区二区| 99精品视频免费观看视频| 日本黄色录像片| 日韩欧美在线视频日韩欧美在线视频 | 亚洲欧美一区二区激情| 欧美电影免费观看| 日韩欧美电影一区二区| 美女脱光内衣内裤视频久久网站| 婷婷丁香综合网| 欧美一级免费大片| 国产美女一区视频| 国偷自产av一区二区三区小尤奈| 国产九九精品| 极品蜜桃臀肥臀-x88av| 制服丝袜av成人在线看| 免费看电影在线| 欧美日韩精品一区| 麻豆国产精品777777在线| 99鲁鲁精品一区二区三区| 欧美大片拔萝卜| 国产社区精品视频| 日韩福利视频| 国产精品一区专区| 欧美一级视频免费观看| 一区二区亚洲欧洲国产日韩| 精品一区二区三区在线观看视频| 97中文字幕在线| 国产亚洲人成网站| 国产精品福利电影| 国内精品久久久久影院 日本资源 国内精品久久久久伊人av | 特级西西人体wwwww| 欧美亚洲国产一卡| 日韩av官网| 日韩成人av网站| 成人午夜短视频| 日韩不卡高清视频| 欧美激情一二三| 日本不卡高清| 精品久久久久久无码人妻| 欧洲一区二区av| 欧美videosex性欧美黑吊| 日本在线高清视频一区| 国产精品一区二区黑丝| 永久免费无码av网站在线观看| 久久影视电视剧免费网站| 亚洲黄色录像| 可以看的av网址| 欧美日韩一区二区三区在线|