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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

现代IM系统中消息推送和存储架构的实现

發布時間:2024/8/23 windows 69 豆豆
生活随笔 收集整理的這篇文章主要介紹了 现代IM系统中消息推送和存储架构的实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

摘要: 前言 IM全稱是『Instant Messaging』,中文名是即時通訊。在這個高度信息化的移動互聯網時代,生活中IM類產品已經成為必備品,比較有名的如釘釘、微信、QQ等以IM為核心功能的產品。當然目前微信已經成長為一個生態型產品,但其核心功能還是IM。

前言

IM全稱是『Instant Messaging』,中文名是即時通訊。在這個高度信息化的移動互聯網時代,生活中IM類產品已經成為必備品,比較有名的如釘釘、微信、QQ等以IM為核心功能的產品。當然目前微信已經成長為一個生態型產品,但其核心功能還是IM。還有一些非以IM系統為核心的應用,最典型的如一些在線游戲、社交應用,IM也是其重要的功能模塊。可以說,帶有社交屬性的應用,IM功能一定是必不可少的。

IM系統在互聯網初期即存在,其基礎技術架構在這十幾年的發展中更新迭代多次,從早期的CS、P2P架構,到現在后臺已經演變為一個復雜的分布式系統,涉及移動端、網絡、安全和存儲等技術的方方面面。其支撐的規模也從早期的少量日活,到現在微信這個巨頭最新公布的達到9億的日活的體量。

IM系統中最核心的部分是消息系統,消息系統中最核心的功能是消息的同步和存儲:

消息的同步:將消息完整的、快速的從發送方傳遞到接收方,就是消息的同步。消息同步系統最重要的衡量指標就是消息傳遞的實時性、完整性以及能支撐的消息規模。從功能上來說,一般至少要支持在線和離線推送,高級的IM系統還支持『多端同步』。
消息的存儲:消息存儲即消息的持久化保存,這里不是指消息在客戶端本地的保存,而是指云端的保存,功能上對應的就是『消息漫游』。『消息漫游』的好處是可以實現賬號在任意端登陸查看所有歷史消息,這也是高級IM系統特有的功能之一。
本篇文章內容主要涉及IM系統中的消息系統架構,會介紹一種基于TableStore構建的消息同步以及存儲系統的架構實現,能夠支持消息系統中的高級特性『多端同步』以及『消息漫游』。在性能和規模上,能夠做到全量消息云端存儲,百萬TPS以及毫秒級延遲的消息同步能力。

架構設計

本章主要會介紹基于TableStore的現代IM消息系統的架構設計,在詳細介紹架構設計之前,會先介紹一種Timeline邏輯模型,來抽象和簡化對IM消息同步和存儲模型的理解。理解了Timeline模型后,會介紹如何基于此模型對消息的同步以及存儲進行建模。基于Timeline模型,在實現消息同步和存儲時還會有各方面的技術權衡,例如如何對消息同步常見的讀擴散和寫擴散兩種模型進行對比和選擇,以及針對Timeline模型的特征如何來選擇底層數據庫。

傳統架構 vs 現代架構

上圖是消息系統傳統架構與現代架構的簡單對比。

傳統架構下,消息是先同步后存儲。對于在線的用戶,消息會直接實時同步到在線的接收方,消息同步成功后,并不會進行持久化。而對于離線的用戶或者消息無法實時同步成功時,消息會持久化到離線庫,當接收方重新連接后,會從離線庫拉取所有未讀消息。當離線庫中的消息成功同步到接收方后,消息會從離線庫中刪除。傳統的消息系統,服務端的主要工作是維護發送方和接收方的連接狀態,并提供在線消息同步和離線消息緩存的能力,保證消息一定能夠從發送方傳遞到接收方。服務端不會對消息進行持久化,所以也無法支持消息漫游。

現代架構下,消息是先存儲后同步。先存儲后同步的好處是,如果接收方確認接收到了消息,那這條消息一定是已經在云端保存了。并且消息會有兩個庫來保存,一個是消息存儲庫,用于全量保存所有會話的消息,主要用于支持消息漫游。另一個是消息同步庫,主要用于接收方的多端同步。消息從發送方發出后,經過服務端轉發,服務端會先將消息保存到消息存儲庫,后保存到消息同步庫。完成消息的持久化保存后,對于在線的接收方,會直接選擇在線推送。但在線推送并不是一個必須路徑,只是一個更優的消息傳遞路徑。對于在線推送失敗或者離線的接收方,會有另外一個統一的消息同步方式。接收方會主動的向服務端拉取所有未同步消息,但接收方何時來同步以及會在哪些端來同步消息對服務端來說是未知的,所以要求服務端必須保存所有需要同步到接收方的消息,這是消息同步庫的主要作用。對于新的同步設備,會有消息漫游的需求,這是消息存儲庫的主要作用,在消息存儲庫中,可以拉取任意會話的全量歷史消息。

以上是傳統架構和現代架構的一個簡單的對比,現代架構上整個消息的同步和存儲流程,并沒有變復雜太多,但是其能實現多端同步以及消息漫游。現代架構中最核心的就是兩個消息庫『消息同步庫』和『消息存儲庫』,是消息同步和存儲最核心的基礎。而本篇文章接下來的部分,都是圍繞這兩個庫的設計和實現來展開。

Timeline模型

在分析『消息同步庫』和『消息存儲庫』的設計和實現之前,在本章會先介紹一個邏輯模型-Timeline。Timeline模型會幫助我們簡化對消息同步和存儲模型的理解,而消息庫的設計和實現也是圍繞Timeline的特性和需求來展開。

如圖是Timeline模型的一個抽象表述,Timeline可以簡單理解為是一個消息隊列,但這個消息隊列有如下特性:

每個消息擁有一個順序ID(SeqId),在隊列后面的消息的SeqId一定比前面的消息的SeqId大,也就是保證SeqId一定是增長的,但是不要求嚴格遞增。
新的消息永遠在尾部添加,保證新的消息的SeqId永遠比已經存在隊列中的消息都大。
可根據SeqId隨機定位到具體的某條消息進行讀取,也可以任意讀取某個給定范圍內的所有消息。
有了這些特性后,消息的同步可以拿Timeline來很簡單的實現。圖中的例子中,消息發送方是A,消息接收方是B,同時B存在多個接收端,分別是B1、B2和B3。A向B發送消息,消息需要同步到B的多個端,待同步的消息通過一個Timeline來進行交換。A向B發送的所有消息,都會保存在這個Timeline中,B的每個接收端都是獨立的從這個Timeline中拉取消息。每個接收端同步完畢后,都會在本地記錄下最新同步到的消息的SeqId,即最新的一個位點,作為下次消息同步的起始位點。服務端不會保存各個端的同步狀態,各個端均可以在任意時間從任意點開始拉取消息。

消息漫游也是基于Timeline,和消息同步唯一的區別是,消息漫游要求服務端能夠對Timeline內的所有數據進行持久化。

基于Timeline,從邏輯模型上能夠很簡單的理解在服務端如何去實現消息同步和存儲,并支持多端同步和消息漫游這些高級功能。落地到實現的難點主要在如何將邏輯模型映射到物理模型,Timeline的實現對數據庫會有哪些要求?我們應該選擇何種數據庫去實現?這些是接下來會討論到的問題。

消息存儲模型

如圖是基于Timeline的消息存儲模型,消息存儲要求每個會話都對應一個獨立的Timeline。如圖例子所示,A與B/C/D/E/F均發生了會話,每個會話對應一個獨立的Timeline,每個Timeline內存有這個會話中的所有消息,服務端會對每個Timeline進行持久化。服務端能夠對所有會話Timeline中的全量消息進行持久化,也就擁有了消息漫游的能力。

消息同步模型

消息同步模型會比消息存儲模型稍復雜一些,消息的同步一般有讀擴散和寫擴散兩種不同的方式,分別對應不同的Timeline物理模型。

如圖是讀擴散和寫擴散兩種不同同步模式下對應的不同的Timeline模型,按圖中的示例,A作為消息接收者,其與B/C/D/E/F發生了會話,每個會話中的新的消息都需要同步到A的某個端,看下讀擴散和寫擴散兩種模式下消息如何做同步。

讀擴散:消息存儲模型中,每個會話的Timeline中保存了這個會話的全量消息。讀擴散的消息同步模式下,每個會話中產生的新的消息,只需要寫一次到其用于存儲的Timeline中,接收端從這個Timeline中拉取新的消息。優點是消息只需要寫一次,相比寫擴散的模式,能夠大大降低消息寫入次數,特別是在群消息這種場景下。但其缺點也比較明顯,接收端去同步消息的邏輯會相對復雜和低效。接收端需要對每個會話都拉取一次才能獲取全部消息,讀被大大的放大,并且會產生很多無效的讀,因為并不是每個會話都會有新消息產生。
寫擴散:寫擴散的消息同步模式,需要有一個額外的Timeline來專門用于消息同步,通常是每個接收端都會擁有一個獨立的同步Timeline,用于存放需要向這個接收端同步的所有消息。每個會話中的消息,會產生多次寫,除了寫入用于消息存儲的會話Timeline,還需要寫入需要同步到的接收端的同步Timeline。在個人與個人的會話中,消息會被額外寫兩次,除了寫入這個會話的存儲Timeline,還需要寫入參與這個會話的兩個接收者的同步Timeline。而在群這個場景下,寫入會被更加的放大,如果這個群擁有N個參與者,那每條消息都需要額外的寫N次。寫擴散同步模式的優點是,在接收端消息同步邏輯會非常簡單,只需要從其同步Timeline中讀取一次即可,大大降低了消息同步所需的讀的壓力。其缺點就是消息寫入會被放大,特別是針對群這種場景。
在IM這種應用場景下,通常會選擇寫擴散這種消息同步模式。IM場景下,一條消息只會產生一次,但是會被讀取多次,是典型的讀多寫少的場景,消息的讀寫比例大概是10:1。若使用讀擴散同步模式,整個系統的讀寫比例會被放大到100:1。一個優化的好的系統,必須從設計上去平衡這種讀寫壓力,避免讀或寫任意一維觸碰到天花板。所以IM系統這類場景下,通常會應用寫擴散這種同步模式,來平衡讀和寫,將100:1的讀寫比例平衡到30:30。當然寫擴散這種同步模式,還需要處理一些極端場景,例如萬人大群。針對這種極端寫擴散的場景,會退化到使用讀擴散。一個簡單的IM系統,通常會在產品層面限制這種大群的存在,而對于一個高級的IM系統,會采用讀寫擴散混合的同步模式,來滿足這類產品的需求。

消息庫設計

基于Timeline模型,以及Timeline模型在消息存儲和消息同步的應用,我們看下消息同步庫和消息存儲庫的設計。

如圖是基于Timeline的消息庫設計。

消息同步庫:消息同步庫用于存儲所有用于消息同步的Timeline,每個Timeline對應一個接收端,主要用作寫擴散模式的消息同步。這個庫不需要永久保留所有需要同步的消息,因為消息在同步到所有端后其生命周期就可以結束,就可以被回收。但是如前面所介紹的,一個實現簡單的多端同步消息系統,在服務端不會保存有所有端的同步狀態,而是依賴端自己主動來做同步。所以服務端不知道消息何時可以回收,通常的做法是為這個庫里的消息設定一個固定的生命周期,例如一周或者一個月,生命周期結束可被淘汰。
消息存儲庫:消息存儲庫用于存儲所有會話的Timeline,每個Timeline包含了一個會話中的所有消息。這個庫主要用于消息漫游時拉取某個會話的所有歷史消息,也用于讀擴散模式的消息同步。
消息同步庫和消息存儲庫,對數據庫有不同的要求,如何對數據庫做選型,在下面會討論。

數據庫選型

消息系統最核心的兩個庫是消息同步庫和消息存儲庫,兩個庫對數據庫有不同的要求:


總結下來,對數據庫的要求有如下幾點:

表結構設計能夠滿足Timeline模型的功能要求:不要求關系模型,能夠實現隊列模型,并能夠支持生成自增的SeqId。
能夠支持高并發寫和范圍讀,規模在十萬級TPS。
能夠保存海量數據,百TB級。
能夠為數據定義生命周期。
阿里云表格存儲(TableStore)是基于LSM存儲引擎的分布式NoSQL數據庫,支持百萬TPS高并發讀寫,PB級數據存儲,數據支持TTL,能夠很好的滿足以上需求,并且支持自增列,能夠非常完美的設計和實現Timeline的物理模型。

架構實現

本章會以一段非常精簡的代碼,來展示如何基于TableStore實現Timeline模型,并基于Timeline模型進行消息存儲和推送。
這篇文章中給出的代碼,主要目的是為了演示如何能夠實現一個精簡Timeline的最基本功能。馬上我們會推出一個完整的Timeline Library,來將基于Timeline進行消息存儲和推送的代碼的開發變得無比簡單。

所有示例代碼基于如下SDK版本:

<dependency><groupId>com.aliyun.openservices</groupId><artifactId>tablestore</artifactId><version>4.3.1</version> </dependency>

表結構設計

public static void main(String[] args) {String endpoint = "<endpoint>";String accessId = "<access_id>";String accessKey = "<access_key>";String instanceName = "<instance_name>";SyncClient client = new SyncClient(endpoint, accessId, accessKey, instanceName);String pushTable = "PushTable";String storeTable = "StoreTable";createTimelineTable(client, pushTable);createTimelineTable(client, storeTable);client.shutdown();}private static void createTimelineTable(SyncClient client, String tableName) {TableMeta tableMeta = new TableMeta(tableName);tableMeta.addPrimaryKeyColumn("timeline_id", PrimaryKeyType.STRING);tableMeta.addAutoIncrementPrimaryKeyColumn("seq_id");TableOptions options = new TableOptions();options.setMaxVersions(1);options.setTimeToLive(-1); // 配置消息永久保留CreateTableRequest request = new CreateTableRequest(tableMeta, options);client.createTable(request);}

以上是創建Timeline表的示例代碼,總共需要創建兩張表,一張表作為消息同步庫,名稱為『PushTable』,另一張表作為消息存儲庫,名稱為『StoreTable』。

推送和存儲實現

public static void main(String[] args) {String endpoint = "<endpoint>";String accessId = "<access_id>";String accessKey = "<access_key>";String instanceName = "<instance_name>";SyncClient client = new SyncClient(endpoint, accessId, accessKey, instanceName);String pushTable = "PushTable";String storeTable = "StoreTable";String groupName = "TableStore(釘釘號:11789671)";List<String> groupMembers = Arrays.asList("A", "B", "C", "D", "E");// 群產生新的消息,并且推送給所有的群成員pushGroupMessages(client, pushTable, storeTable, groupName, groupMembers, "Hello World!");pushGroupMessages(client, pushTable, storeTable, groupName, groupMembers, "Hello Alibaba!");pushGroupMessages(client, pushTable, storeTable, groupName, groupMembers, "Hello Aliyun!");pushGroupMessages(client, pushTable, storeTable, groupName, groupMembers, "Hello TableStore!");pushGroupMessages(client, pushTable, storeTable, groupName, groupMembers, "Bye!");client.shutdown();}private static void pushGroupMessages(SyncClient client, String pushTable, String storeTable, String groupName, List<String> groupMembers, String message) {// 先將群消息持久化到存儲TimelinewriteMessage(client, storeTable, groupName, message);// 通過寫擴散的模式將群消息同步到所有的群成員for (String groupMember : groupMembers) {writeMessage(client, pushTable, groupMember, message);}}private static void writeMessage(SyncClient client, String timelineTable, String timelineId, String message) {PrimaryKey primaryKey = PrimaryKeyBuilder.createPrimaryKeyBuilder().addPrimaryKeyColumn("timeline_id", PrimaryKeyValue.fromString(timelineId)).addPrimaryKeyColumn("seq_id", PrimaryKeyValue.AUTO_INCREMENT).build();RowPutChange rowChange = new RowPutChange(timelineTable, primaryKey);rowChange.addColumn("message", ColumnValue.fromString(message));PutRowRequest request = new PutRowRequest(rowChange);client.putRow(request);}

以上是模擬一個群內消息同步和存儲的示例代碼。群名稱為『TableStore(釘釘號:11789671)』,群內成員有『A, B, C, D, E』。群內新的消息,需要先存儲到群的存儲Timeline(Timeline ID為群名稱),之后需要以寫擴散的模式推送到群內每個成員的同步Timeline(以群成員名稱作為Timeline ID)。

public static void main(String[] args) {String endpoint = "<endpoint>";String accessId = "<access_id>";String accessKey = "<access_key>";String instanceName = "<instance_name>";SyncClient client = new SyncClient(endpoint, accessId, accessKey, instanceName);String pushTable = "PushTable";String storeTable = "StoreTable";String groupName = "TableStore(釘釘號:11789671)";List<String> groupMembers = Arrays.asList("A", "B", "C", "D", "E");// 某個群成員同步群消息List<String> messages = syncMessages(client, pushTable, "A", 0);for (String message : messages) {System.out.println(message);}// 某個群成員查看該群所有的歷史消息messages = syncMessages(client, storeTable, groupName, 0);for (String message : messages) {System.out.println(message);}client.shutdown();}private static List<String> syncMessages(SyncClient client, String timelineTable, String timelineId, long seqId) {RangeIteratorParameter param = new RangeIteratorParameter(timelineTable);PrimaryKey startKey = PrimaryKeyBuilder.createPrimaryKeyBuilder().addPrimaryKeyColumn("timeline_id", PrimaryKeyValue.fromString(timelineId)).addPrimaryKeyColumn("seq_id", PrimaryKeyValue.fromLong(seqId)).build();param.setInclusiveStartPrimaryKey(startKey);PrimaryKey endKey = PrimaryKeyBuilder.createPrimaryKeyBuilder().addPrimaryKeyColumn("timeline_id", PrimaryKeyValue.fromString(timelineId)).addPrimaryKeyColumn("seq_id", PrimaryKeyValue.INF_MAX).build();param.setExclusiveEndPrimaryKey(endKey);param.setMaxVersions(1);Iterator<Row> iter = client.createRangeIterator(param);List<String> messages = new ArrayList<String>();while (iter.hasNext()) {Row row = iter.next();messages.add(row.getLatestColumn("message").getValue().asString());}return messages;}

以上是拉取群內歷史消息以及某個群成員進行消息同步的示例代碼,主要邏輯在syncMessages函數內。示例代碼中,拉取消息都是從seq_id為0開始,0為TableStore自增列中最小值,所以代表了從最小的一個位點開始拉取消息,即拉取全量消息。

后記

這篇文章主要介紹了現代IM系統中消息推送和存儲架構的實現,基于邏輯的Timeline模型,我們可以很清晰明了的理解整個消息推送和存儲的架構。基于TableStore,可以非常簡單的實現Timeline模型,其中自增列功能,完美的匹配了Timeline模型中所需要的最關鍵的SeqId自增。

TableStore(表格存儲)是阿里云自主研發的專業級分布式NoSQL數據庫,是基于共享存儲的高性能、低成本、易擴展、全托管的半結構化數據存儲平臺,支撐互聯網和物聯網數據的高效計算與分析。IM系統的消息推送和存儲場景,是TableStore在社交領域的重要應用之一。

基于Timeline的消息存儲和推送模型,將不光應用在IM消息系統中,還可應用在例如Feeds流、實時消息同步、直播彈幕等場景。在Feeds流場景下,我們也有了比較深入的研究,可以參考《如何打造千萬級Feeds流系統》這篇文章。而在其他更多的場景下,我們將會有更多的深入研究。

作者:木洛

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的现代IM系统中消息推送和存储架构的实现的全部內容,希望文章能夠幫你解決所遇到的問題。

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

精品 激情| 欧美日韩精品二区第二页 | 五月婷婷欧美视频 | 91在线日韩| 中文字幕在线观看日本 | 狠狠干激情 | 狠狠色丁香婷婷综合视频 | 久久er99热精品一区二区 | 久久精品99久久久久久2456 | 国产999在线观看 | 亚洲午夜精品电影 | 草久久精品 | 婷婷精品国产一区二区三区日韩 | 成人精品一区二区三区中文字幕 | 一区二区三区免费在线 | 国产精品女同一区二区三区久久夜 | 久久久91精品国产一区二区精品 | 国产精品久久久久久久久久ktv | av3级在线 | 久久国产剧场电影 | 视频国产 | 欧美伊人网| 在线观看成人国产 | 日韩三级视频在线看 | 国产高清小视频 | 国内精品视频在线 | 久久毛片高清国产 | 国产精彩在线视频 | 欧美日韩三级在线观看 | 久久视频免费在线观看 | 国产日产亚洲精华av | 蜜臀一区二区三区精品免费视频 | 特级黄色一级 | 日韩中文字幕a | 国产欧美高清 | 亚洲成人频道 | 午夜精品一区二区三区在线 | 亚洲精品欧美专区 | 日韩中文字幕免费在线播放 | 一本色道久久精品 | 91精品天码美女少妇 | 久久精品日韩 | 免费色网站 | 中文字幕在线免费 | 99精品一区二区三区 | 午夜视频色 | 在线观看视频你懂 | 99久久网站 | 操操操人人人 | wwwwww国产 | 欧美少妇影院 | 青青河边草免费观看完整版高清 | 亚州av网站大全 | 国产又粗又猛又爽又黄的视频先 | 黄色一级动作片 | 免费在线观看av的网站 | 成年人免费在线播放 | 91精品国产欧美一区二区成人 | 超碰人人国产 | 亚洲国产一区二区精品专区 | 永久免费观看视频 | 亚洲中字幕 | 激情综合一区 | 久久国产乱 | 伊人天天综合 | 亚洲一区久久久 | sm免费xx网站 | 久久久精品欧美一区二区免费 | 日本最大色倩网站www | 亚洲女人天堂成人av在线 | 91精品国产乱码在线观看 | 亚州av网站| 亚洲黄电影 | 欧美性生活小视频 | 国产大陆亚洲精品国产 | 国产精品欧美日韩 | 超碰日韩 | 中文字幕一区二区三区乱码不卡 | 欧美精选一区二区三区 | 亚洲一区日韩精品 | 久久精品人人做人人综合老师 | 综合精品久久久 | 夜夜天天干| 国产精品亚洲精品 | 天天操天天射天天爱 | 久久免费的视频 | 午夜婷婷网 | 国产精品一区二区无线 | 99国产在线观看 | 99精品在线观看视频 | 波多野结衣电影久久 | 999超碰| 免费在线一区二区 | 中文字幕国产精品一区二区 | 欧美少妇xxx| 久久久精品国产一区二区 | 成人免费视频在线观看 | 久久久久国产一区二区 | 日韩av中文在线 | 999成人| 精品国产一区二区三区日日嗨 | 五月天亚洲综合 | 欧美日韩三级在线观看 | 丰满少妇对白在线偷拍 | 天天草夜夜 | 成人av在线观 | 亚洲情感电影大片 | 欧美日韩中文在线 | 91成人精品一区在线播放69 | 日韩久久在线 | 日韩精品免费在线观看 | 国产精品网红福利 | 性色av免费在线观看 | 91亚洲视频在线观看 | 久久久久国产成人精品亚洲午夜 | 午夜免费电影院 | 在线免费观看欧美日韩 | 成人国产精品电影 | 激情开心 | 午夜色大片在线观看 | 国产黄在线免费观看 | 一级黄毛片 | 粉嫩av一区二区三区四区在线观看 | 91视频黄色 | 在线va视频| 久久久久成人精品 | 久久夜色精品国产欧美乱 | 亚洲精品黄色在线观看 | 日韩亚洲在线观看 | 亚洲精品在线观看视频 | 亚洲欧美日韩国产精品一区午夜 | 亚洲永久字幕 | 久久久久久免费视频 | 日韩夜夜爽 | 亚洲精品玖玖玖av在线看 | 日日干天天操 | 色综合久 | 99av在线视频| 国产黄大片在线观看 | 亚洲精品国产综合99久久夜夜嗨 | 99色视频在线 | 色狠狠婷婷 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 久久色视频| 四虎影视国产精品免费久久 | 在线看一级片 | 超碰个人在线 | 国内丰满少妇猛烈精品播 | 婷婷在线资源 | 综合国产视频 | 狠狠色香婷婷久久亚洲精品 | 天天干com| 99爱爱| 亚洲天堂社区 | 二区三区av| 中文字幕在线观看第一区 | 在线国产中文字幕 | 日精品| 欧美精品在线一区二区 | 久草视频观看 | 视频国产区| 免费看污网站 | 久久99深爱久久99精品 | 国产成人三级 | 中文字幕电影在线 | 99视频在线免费看 | 成在线播放 | 97在线看 | 视频一区在线播放 | 免费日韩三级 | 久久久免费精品 | 欧美a级免费视频 | 日本中文字幕在线观看 | av成人动漫在线观看 | 国产精品99免视看9 国产精品毛片一区视频 | 国产香蕉视频 | 九热在线| 欧美在线观看视频一区二区 | 婷婷丁香五| 麻豆va一区二区三区久久浪 | 国产精品美女免费看 | 麻豆视频国产在线观看 | 中文日韩在线视频 | 久久视频99| 成人永久免费 | 久久精品视频在线观看 | 99久精品 | 一二三四精品 | 99 精品 在线 | 不卡中文字幕在线 | 高清av中文在线字幕观看1 | 在线天堂8√ | 麻豆影视在线免费观看 | 成人三级视频 | 精品美女久久久久 | 九精品 | 亚洲综合色av| 91九色蝌蚪视频 | 国产国产人免费人成免费视频 | 在线精品视频免费播放 | 日韩精品久久久久久 | 欧美一级激情 | 99av在线视频 | 麻豆国产精品永久免费视频 | 国产成人777777 | 日韩成人精品 | 久草在线视频国产 | 国产一区在线不卡 | 五月天激情综合网 | 九九久久免费视频 | 色婷婷在线观看视频 | 在线成人一区二区 | 91九色蝌蚪视频 | 国产女v资源在线观看 | 成人毛片一区 | 日韩欧美专区 | 国产成人一区二区在线观看 | 天天摸天天舔天天操 | 午夜久久久精品 | 98精品国产自产在线观看 | 不卡的av电影 | 亚洲乱码久久 | 国产剧情一区 | 日韩精品第1页 | 国产精品久久久久毛片大屁完整版 | 国产精品福利久久久 | 美女黄频免费 | 久草在线播放视频 | 国产黄在线观看 | 亚洲精品一区二区三区高潮 | 欧美日韩亚洲在线观看 | 91麻豆福利 | 久久久噜噜噜久久久 | 成人高清在线 | 日韩一区二区免费视频 | 国产成人精品亚洲日本在线观看 | 美女网站色 | 日韩一级片网址 | 国产精品久久久久一区二区三区共 | 不卡中文字幕av | 日韩av一区二区在线 | 激情五月婷婷激情 | 91精品成人久久 | 91九色老| 国产精品18久久久久久vr | 天天干,夜夜爽 | 亚洲精品成人av在线 | 91精品国产99久久久久久久 | 欧美国产日韩一区二区三区 | 人人爽人人片 | 婷婷精品国产一区二区三区日韩 | 韩日在线一区 | 国产日韩欧美在线免费观看 | 精品五月天| 国产精品色婷婷视频 | 97在线影视 | 国产精品男女 | 亚洲视屏在线播放 | 成人免费视频播放 | 天天天天天天干 | 亚洲精品国 | 在线观看视频国产一区 | 婷五月天激情 | 国产xx视频| 午夜精品久久久久久久久久 | 69亚洲精品 | 国产精品久久久久影院日本 | 国产视频二区三区 | 天天操天天曰 | 日本黄色免费电影网站 | 69国产成人综合久久精品欧美 | 国内精品久久久久久久影视简单 | avwww在线| 日韩色视频在线观看 | 免费观看一区二区三区视频 | 天天操天天操天天操天天操天天操 | 精品在线视频播放 | 日日干天夜夜 | 欧美99热| 国产成人精品综合 | 在线日韩视频 | 天堂网中文在线 | 日韩av在线网站 | 日韩大片在线观看 | 天天干天天操天天拍 | 久久国产精品一区二区三区 | 国产精品亚洲精品 | 丁香狠狠| 五月天国产精品 | 欧美日韩免费在线观看视频 | 国产精品一区二区久久精品 | 久久国产精品免费看 | 亚洲精品中文字幕视频 | 亚洲精品国偷拍自产在线观看蜜桃 | 在线观看国产一区二区 | 国产精品美女久久久久久2018 | 久久久精品国产一区二区电影四季 | 夜色成人网 | 国产激情电影综合在线看 | 久草青青在线观看 | 国产一区二区成人 | 00av视频 | 伊人天天干| 国产96精品 | 国产视频一区二区在线播放 | 97综合在线 | 最近的中文字幕大全免费版 | 国产精品欧美日韩在线观看 | 欧美午夜精品久久久久久浪潮 | 国产视频第二页 | 波多野结衣一区二区三区中文字幕 | 九七视频在线 | 午夜国产在线观看 | 久久久国产电影 | 亚洲涩涩涩 | 亚洲精品免费看 | 精品视频成人 | 一区久久久 | 亚洲视频精选 | 丁香五婷 | 亚洲特级片| 色综合天天干 | 成年人黄色免费网站 | 日韩中文字幕视频在线 | 91香蕉视频黄 | 超碰在线色 | 97视频免费在线观看 | 国产精品99久久99久久久二8 | 国产手机在线观看 | 国产在线观看99 | 91黄色在线观看 | 欧美日韩调教 | 国产99久久精品一区二区300 | 午夜国产福利在线 | 精品在线视频观看 | 日韩有码第一页 | 香蕉视频4aa | 婷婷在线视频 | 亚洲精品乱码久久久久久蜜桃不爽 | 操综合 | 国产精品久久久久久久久费观看 | 在线综合 亚洲 欧美在线视频 | 911久久香蕉国产线看观看 | 久久精品第一页 | 久草网在线观看 | 亚洲91精品在线观看 | 国产福利小视频在线 | 亚洲精品 在线视频 | 国产网红在线 | 天天操天天能 | 欧美成人xxxxx | 国产精品影音先锋 | 国产精品第一页在线观看 | 一区二区三区在线看 | 国产精久久久久久久 | 日本女人的性生活视频 | 亚洲精品中文在线观看 | 亚洲美女在线国产 | 亚洲精品久久久久久中文传媒 | 国产精品视频全国免费观看 | 国产精品麻豆免费版 | 国产一区视频免费在线观看 | 天天干天天看 | 日韩午夜大片 | 国产精品欧美久久久久天天影视 | 中文字幕免费播放 | 国产免费成人 | 美女网站黄在线观看 | 天天操天天草 | 国产1区2区3区在线 亚洲自拍偷拍色图 | 又爽又黄又刺激的视频 | 亚洲永久精品在线观看 | 麻豆 91 在线 | 在线高清av| 精品欧美一区二区三区久久久 | www.天堂av| 在线观看亚洲国产 | 波多野结衣一区二区 | 在线中文字幕播放 | www.91成人 | 亚洲精品视频在线观看免费视频 | av一级片在线观看 | 夜夜操网 | japanese黑人亚洲人4k | 久久精品日本啪啪涩涩 | 99久久精品免费一区 | 最新成人在线 | 欧美日韩高清在线一区 | 国产精品亚洲片在线播放 | 久久久69| 中文字幕精品三区 | 999精品在线| 91视视频在线直接观看在线看网页在线看 | 久久久久久国产精品美女 | 91九色porn在线资源 | aa一级片| 久久99亚洲精品久久 | 麻豆国产精品一区二区三区 | 欧美在线视频一区二区三区 | 456成人精品影院 | 欧美天天综合 | 中文字幕色综合网 | 91精品国产91久久久久福利 | 国产流白浆高潮在线观看 | 中文字幕在线观看亚洲 | 在线免费黄色av | 日日日操 | 亚洲人在线视频 | 波多野结衣视频在线 | 久久综合婷婷综合 | 1024手机在线看 | 欧美91av| 亚洲精品视频中文字幕 | 国产精品久久久久9999 | 日韩视频在线播放 | 五月婷婷丁香激情 | 天天操夜操 | 免费观看国产成人 | 成人小视频在线播放 | 特级毛片aaa| av网站在线观看播放 | 99热国产在线观看 | 国产又粗又长的视频 | 国产在线精品播放 | 66av99精品福利视频在线 | 国产护士av | 黄色三级在线看 | 久久久久久久久久久福利 | 亚洲精品视频第一页 | 一区二区三区福利 | 一区二区欧美激情 | 欧美最新大片在线看 | 特级西西444www大精品视频免费看 | 亚洲开心激情 | 国产精品不卡在线播放 | 午夜精品一区二区三区在线观看 | 日本黄色黄网站 | 色综合色综合色综合 | 91免费观看网站 | 精品极品在线 | 亚洲国产精品va在线看黑人动漫 | av在线电影网站 | 日韩中文字幕免费看 | 国产一级精品在线观看 | 国产美女精彩久久 | 久久久麻豆 | 日韩欧美视频免费在线观看 | 欧美精品少妇xxxxx喷水 | 天天干国产 | 97av视频| 日韩小视频网站 | 91视频在线观看下载 | 91亚洲在线观看 | 国产精品久久影院 | adc在线观看| 国产亚洲成av人片在线观看桃 | 99热手机在线观看 | 成年人在线观看免费视频 | 91av视频在线播放 | 欧美一级小视频 | 久久国产精品成人免费浪潮 | 97超碰人人模人人人爽人人爱 | 国产精品久久久久久久久久ktv | 亚洲欧美乱综合图片区小说区 | 日本特黄一级 | www.狠狠干| 色视频在线免费观看 | 成人三级网址 | 婷婷激情影院 | 999热视频 | 国产福利久久 | 91日韩在线播放 | 91探花系列在线播放 | 久久精品久久综合 | 国产一区二区在线视频观看 | 日韩免费电影一区二区三区 | 欧美日韩p片| 狠日日| 亚洲91av | 欧美色就是色 | 欧美午夜精品久久久久 | 91丨九色丨勾搭 | 国产看片网站 | av大全在线观看 | 激情视频在线观看网址 | 麻豆系列在线观看 | 丁香六月在线观看 | 美女一二三区 | 亚洲一级电影 | 夜夜夜| 国产视频 亚洲精品 | 精品国产乱码久久久久久天美 | av3级在线| 99精品久久久久久久 | 久久你懂的 | 深爱婷婷久久综合 | 中文免费在线观看 | 丁香综合激情 | 日韩av电影中文字幕在线观看 | 91精品国产欧美一区二区成人 | 最近中文字幕高清字幕在线视频 | 香蕉视频网站在线观看 | 五月在线视频 | 日韩av影片在线观看 | 九九视频这里只有精品 | 久久国产精品精品国产色婷婷 | 久久久久久综合网天天 | 肉色欧美久久久久久久免费看 | 亚洲天天综合 | 久久一二区 | 一区二区视频在线播放 | 国产精品久久久 | 日日操日日 | 成人毛片在线观看视频 | 午夜精品999 | 九色91福利 | 四虎影视成人精品 | 久久9视频 | 最新中文在线视频 | 人成免费网站 | 欧美亚洲另类在线视频 | av综合网址 | 最近免费中文字幕大全高清10 | 99免费在线观看视频 | 国产精品理论片 | 日本黄色免费大片 | 国产精品毛片一区二区 | 91完整版 | 国产精品久久久久久欧美 | 成人片在线播放 | 国产精品视频app | www狠狠操| 精品国产精品国产偷麻豆 | 99精品视频免费观看 | 久久综合久色欧美综合狠狠 | 日韩在线观看高清 | 日韩在线视频免费看 | 精品国产伦一区二区三区观看方式 | 成人在线一区二区 | 天天色天天干天天 | 成人av av在线 | 色香天天 | 日韩av成人免费看 | 国产免费视频在线 | 亚洲天堂网站 | 国产精品福利小视频 | 国产伦精品一区二区三区无广告 | 成人免费看片98欧美 | 婷婷色5月 | 免费观看91视频大全 | 美女免费av | 日韩在线视频精品 | 免费观看性生交大片3 | 就操操久久 | 热久久电影 | 日韩高清精品一区二区 | 国产久草在线观看 | 免费在线观看av不卡 | 日韩精品专区在线影院重磅 | 免费男女羞羞的视频网站中文字幕 | 国产黄免费在线观看 | 欧美极度另类性三渗透 | www日日夜夜 | 黄网站色| 日韩在线视频线视频免费网站 | 手机在线小视频 | 免费99视频 | 人人干天天射 | 国产精品久久久久久电影 | 精品国产乱码 | 日韩精品视频免费专区在线播放 | 亚洲高清在线视频 | 亚洲人成网站精品片在线观看 | 国产最新91| 久久香蕉影视 | 国产亚洲在线 | 午夜精品电影一区二区在线 | 日韩理论在线视频 | 久久热首页 | 久久爱992xxoo | 日韩欧美国产视频 | 色偷偷88欧美精品久久久 | 国产不卡网站 | 国产精品成人av在线 | 免费91在线| 久久精品日产第一区二区三区乱码 | 成人一级黄色片 | 国产区精品区 | av在线播放不卡 | 国产专区精品 | 高清不卡一区二区三区 | 国产亚洲情侣一区二区无 | 国内精品久久久久影院优 | 久久五月婷婷丁香社区 | 欧美xxxxx在线视频 | 999精品在线 | 欧美日韩国产精品爽爽 | av 一区 二区 久久 | 亚洲 欧洲av | 色吊丝在线永久观看最新版本 | 欧美日本在线视频 | 中文字幕无吗 | 欧美色图另类 | 一级黄色片在线 | av在线一二三区 | 一本一道久久a久久精品 | 国产精品不卡视频 | 久久婷婷精品 | 国产二区av| 99久久日韩精品视频免费在线观看 | 九七人人干 | 久草在在线 | 91免费观看 | 狠狠夜夜| 99久久精品国产一区二区成人 | 狠狠的干狠狠的操 | 婷婷伊人五月 | 在线影院中文字幕 | 天堂av在线网 | 久久深夜福利免费观看 | 一区二区三区在线免费观看 | 久久午夜网 | 久久激情视频免费观看 | 亚洲国产影院av久久久久 | 精品黄色片 | 国产精品第54页 | 中文字幕在线观看第二页 | 国产日本在线观看 | 久久99免费视频 | 久久久久伊人 | 成人免费观看大片 | 亚洲精品在线免费看 | 久久精品一区二区三区四区 | 91最新网址 | a在线免费| 久久在线免费 | 中文免费 | 色视频成人在线观看免 | 成人精品99| 欧美日韩亚洲精品在线 | 午夜免费福利视频 | 免费在线国产黄色 | 狠狠干网站 | 日日操操 | 中文av免费| 亚洲成年人免费网站 | 操操操av| 久久成人免费视频 | 国产黄色精品 | 久草精品电影 | 色激情在线 | 日产乱码一二三区别免费 | 日韩高清 一区 | 色99导航 | 免费在线国产精品 | 亚洲精品88欧美一区二区 | 在线观看www视频 | 亚洲,播放 | 久久夜色网 | 日韩免费在线观看视频 | 欧美日韩激情视频8区 | 国产中年夫妇高潮精品视频 | 久久高清免费视频 | 久久亚洲影院 | www.国产在线观看 | 久久99精品国产一区二区三区 | 中文一二区| 欧美精品一区在线 | 91麻豆免费看| 日韩欧美精品在线观看视频 | 丁香导航| 国产精品6| 国产999精品久久久影片官网 | 97精品久久 | 男女视频91 | 日韩成人免费在线观看 | 亚洲综合欧美激情 | 中文字幕二区 | 国产一区二区影院 | 91亚色视频在线观看 | 麻豆va一区二区三区久久浪 | 成人午夜久久 | 亚洲专区在线播放 | 久久久私人影院 | 人人爽人人搞 | 天天操夜夜看 | 日日添夜夜添 | 香蕉网在线观看 | 亚洲三级在线播放 | 久久国产电影 | 国产人成精品一区二区三 | 亚洲精品999 | 97网| 操操碰 | 国产免费久久av | 色妞色视频一区二区三区四区 | 日韩中文字幕视频在线 | 黄色免费网 | 狠狠干 狠狠操 | 亚州精品一二三区 | 日本中文字幕视频 | 国产免费久久久久 | www.大网伊人 | 精品免费视频 | 激情婷婷久久 | 五月婷婷六月丁香 | 国产二区视频在线 | 免费aa大片| 国产资源网 | 国产人成看黄久久久久久久久 | 日日操日日 | 免费在线国产精品 | 天天草天天草 | 国产1级毛片 | 成人精品国产免费网站 | 精品99免费视频 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 中文字幕一区二区三区四区在线视频 | a级免费观看| 亚洲精品在线免费 | 国产精品理论片在线观看 | 在线视频日韩欧美 | 国产精品一区二区久久久 | 国产乱码精品一区二区蜜臀 | 99热这里只有精品国产首页 | 久久99久久99精品免观看粉嫩 | 国产精品video爽爽爽爽 | 日韩高清免费在线观看 | 精品国产精品一区二区夜夜嗨 | 精品成人网 | 亚洲免费资源 | 亚洲美女视频在线观看 | 我要色综合天天 | 高清不卡一区二区在线 | 三级av中文字幕 | 国产午夜麻豆影院在线观看 | 狠狠插狠狠干 | 日本精品视频免费 | 久久99精品久久只有精品 | 91大神精品视频在线观看 | 一区二区三区av在线 | 欧美黄色软件 | av免费在线免费观看 | 国产成人精品久久久久 | 久久人人爽人人爽人人 | 在线视频黄 | 国产999精品久久久久久 | 在线观看你懂的网站 | av大片免费在线观看 | 国产成人精品在线播放 | www免费网站在线观看 | a电影免费看 | 免费色黄| 亚洲成人在线免费 | 久久99精品久久只有精品 | 日日干,天天干 | 国产成人亚洲在线电影 | 国产福利av在线 | 国产精品99久久久 | 91精品国产九九九久久久亚洲 | 国产精品久久久久一区 | av免费看av| 久久视频在线免费观看 | 午夜性盈盈| 天天爽天天射 | 国产麻豆精品免费视频 | 亚洲精品在线观看不卡 | 久热香蕉视频 | 99热这里是精品 | 亚洲一区二区精品在线 | 999成人网| 349k.cc看片app| 国产精品久久久久一区二区 | 日韩视频专区 | 一区 二区 精品 | 国产大片黄色 | 久久国产精品99久久久久 | 在线观看av中文字幕 | 日韩视频三区 | 在线观看视频国产 | 在线观看aa| 91网址在线观看 | 日本乱码在线 | 中文字幕成人一区 | 亚州日韩中文字幕 | 久久久免费精品国产一区二区 | 亚洲精品国产精品乱码不99热 | 久久8| 久久久久久久久久久久久9999 | 2022久久国产露脸精品国产 | 欧美一级片免费 | 亚洲欧美国产日韩在线观看 | 亚洲精品久久久久中文字幕二区 | 日本中文字幕在线一区 | 五月婷婷导航 | 日韩av片免费在线观看 | av中文字幕第一页 | www.夜夜| 亚洲欧洲精品一区二区 | 国产小视频国产精品 | 国产成人av综合色 | 女人魂免费观看 | 久久久九九 | 在线免费观看国产 | 一区二区三区动漫 | 国产精品原创av片国产免费 | 国产精品久久在线 | 日韩免费视频播放 | 新版资源中文在线观看 | 国产日韩精品视频 | 91成人在线视频观看 | 麻豆一二三精选视频 | 国产99在线播放 | 女人魂免费观看 | 久久美女电影 | 日韩视频在线观看视频 | www.久久精品视频 | 91精品久久香蕉国产线看观看 | 日韩欧美在线不卡 | 手机在线视频福利 | 欧美a级片网站 | 日本一区二区高清不卡 | 中文字幕在线观 | 99久久精品久久久久久清纯 | 99国产精品| 99爱在线| 免费在线观看黄 | 黄色软件大全网站 | 午夜丁香视频在线观看 | 丁香六月婷 | 日韩女同一区二区三区在线观看 | 成人毛片一区二区三区 | 国产涩涩在线观看 | 亚洲黄色激情小说 | 欧美在线观看视频免费 | av一区二区三区在线观看 | 人人爽人人片 | 99热精品国产| 国产精品亚洲人在线观看 | 国产精品久久久久久久久久久久久久 | 欧美a级片免费看 | 色av资源网 | 久久精品区 | 国产精品男女视频 | 国产精品久久久久影视 | 天天色草 | 日本婷婷色 | 青青草国产精品视频 | 大荫蒂欧美视频另类xxxx | 国产亚洲精品久久久久久久久久 | 午夜18视频在线观看 | 免费网站在线观看成人 | 国产剧情av在线播放 | 久久久久久高潮国产精品视 | 免费特级黄色片 | 六月丁香激情综合色啪小说 | 91视频在线国产 | 亚洲精品美女久久久 | 日韩欧美一区视频 | 香蕉久久国产 | 99re久久资源最新地址 | 福利视频第一页 | 96看片| 国产一区二区视频在线播放 | 成人三级av | 国产主播大尺度精品福利免费 | 日韩欧美国产免费播放 | 精品久久精品 | 久久久伦理 | 亚洲黄色av | 久久精选视频 | 超黄视频网站 | 九九九九九国产 | 香蕉久久久久 | 亚洲黄色a | 青青河边草免费观看 | 欧美日本中文字幕 | 在线黄色av | 久久免费一 | 99热超碰在线 | 在线视频专区 | 国产日本在线观看 | 97精品国产97久久久久久粉红 | 久久久久www| 色婷婷综合在线 | 国产裸体永久免费视频网站 | 精品国精品自拍自在线 | 色婷婷狠狠18 | 亚洲精品在线观看免费 | 2022久久国产露脸精品国产 | 在线免费三级 | 九九视频在线播放 | 成x99人av在线www | 97超碰人人| 久久亚洲精品电影 | 欧美一二三区在线播放 | 在线播放 日韩专区 | 81国产精品久久久久久久久久 | 国产手机视频在线播放 | 91在线免费看片 | 久久黄色影院 | 91在线视频观看免费 | 日韩精品中文字幕在线播放 | 国产精品99在线观看 | 国产精品高潮呻吟久久久久 | 青青久视频 | 欧美日韩中文视频 | 国内少妇自拍视频一区 | 中文字幕精 | 婷婷在线色 | 四虎国产精品永久在线国在线 | 欧美一区二区三区不卡 | 日韩精品久久久久久久电影99爱 | 国产91大片 | 国产精品国产亚洲精品看不卡 | 日韩一区二区三免费高清在线观看 | 激情视频国产 | 国产一区久久 | 深爱五月激情五月 | 亚洲欧美日韩精品久久久 | 精品一二三四五区 | 免费在线成人av电影 | 国产精品网站一区二区三区 | 黄色成人在线观看 | 久久精选视频 | 欧美伦理一区 | 青青河边草免费 | 欧美性超爽 | 亚洲精品99| 亚洲乱码久久久 | 午夜视频在线观看一区二区 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 久久91网| 99久久日韩精品视频免费在线观看 | 久久99久久99| 日韩系列在线观看 | bbb搡bbb爽爽爽 | 久久婷婷久久 | 97免费在线观看视频 | 天天射天天做 | 999毛片 | www.香蕉视频在线观看 | 99热99热 | 成人h在线观看 | 久久综合久久八八 | 不卡的av在线播放 | 欧美性视频网站 | 在线一区二区三区 | 成人中文字幕+乱码+中文字幕 | 色黄视频免费观看 | 最近最新中文字幕视频 | 2021久久| 午夜美女福利直播 | www.天天综合 | 国产字幕在线看 | 99久久久国产免费 | 91热视频| 亚州国产视频 | 99欧美| 欧美国产三区 | 日本丶国产丶欧美色综合 | 色资源二区在线视频 | 亚洲情影院 | 在线久久| 久久成人精品电影 | 国产小视频你懂的 | 九九视频精品免费 | 免费在线成人av电影 | 99av在线视频 | 麻豆视频在线观看免费 | 毛片一级免费一级 | 黄色免费视频在线观看 | 日本中文字幕影院 | 久久综合九色综合久久久精品综合 | 国产精品不卡 | 国产麻豆电影 | 欧美激情xxxx| 国产黄色a | 中文字幕乱码视频 | 九九免费精品视频在线观看 | 国产99精品 | 天天草天天 | 蜜桃视频色 | 18国产精品白浆在线观看免费 | 中文字幕电影一区 | 国产视频不卡一区 | 免费亚洲视频 | 麻豆高清免费国产一区 | 在线观看中文字幕亚洲 | 国产成人精品久久亚洲高清不卡 | 久久精品小视频 | 狠色狠色综合久久 | 国产成人高清 | 久久久综合精品 | 成年一级片 | 日韩一区二区三 | 综合久久五月天 | www.五月激情.com |