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

支持億級連接并開源的分布式MQTT消息服務器分享

開發 架構
EMQX 是一款開源的大規模分布式 MQTT 消息服務器,功能豐富,專為物聯網和實時通信應用而設計。EMQX 5.0 單集群支持 MQTT 并發連接數高達 1 億條,單服務器的傳輸與處理吞吐量可達每秒百萬級 MQTT 消息,同時保證毫秒級的低時延。

今天給各位分享一款開源的分布式MQTT消息服務器EMQX,此消息服務器幾乎是物聯網系統的標配同時也適合做即時通知和推送服務場景,在作者之前參與的項目中主要用于做物聯網系統邊緣設備信息采集、以及交易所行情數據推送使用,下面是EMQX 相關介紹。

什么是 EMQX

EMQX 是一款開源的大規模分布式 MQTT 消息服務器,功能豐富,專為物聯網和實時通信應用而設計。EMQX 5.0 單集群支持 MQTT 并發連接數高達 1 億條,單服務器的傳輸與處理吞吐量可達每秒百萬級 MQTT 消息,同時保證毫秒級的低時延。

EMQX 支持多種協議,包括 MQTT (3.1、3.1.1 和 5.0)、HTTP、QUIC 和 WebSocket 等,保證各種網絡環境和硬件設備的可訪問性。EMQX 還提供了全面的 SSL/TLS 功能支持,比如雙向認證以及多種身份驗證機制,為物聯網設備和應用程序提供可靠和高效的通信基礎設施。

圖片圖片

內置基于 SQL 的規則引擎,EMQX 可以實時提取、過濾、豐富和轉換物聯網數據。此外,EMQX 采用了無主分布式架構,以確保高可用性和水平擴展性,并提供操作友好的用戶體驗和出色的可觀測性。

EMQX 提供了開源版和商業版兩種方式,用戶可以基于自己需求進行選擇。

官網地址:https://www.emqx.io

github 地址:https://github.com/emqx/emqx

為什么說專為物聯網和實時通信設計?

物聯網方面

以下是幾個理由說明為什么MQTT適合物聯網:

  1. 輕量級和低帶寬消耗:MQTT協議設計簡單輕量,消息頭部開銷小,傳輸數據量少,使其非常適合在低帶寬、不穩定的網絡環境下使用。這對于許多物聯網設備來說非常重要,因為它們通常具有資源受限的特點,如有限的處理能力、內存和電池壽命。
  2. 可靠性和持久性:MQTT支持可靠的消息傳遞,并且具有消息持久性。設備可以發布消息并確保消息可靠地傳遞到服務器,即使在網絡連接中斷后,也可以在重新連接后接收未傳遞的消息。這對于物聯網應用來說非常重要,因為設備可能會經歷網絡不穩定、斷開和重新連接等情況。
  3. 異步通信和發布-訂閱模式:MQTT使用發布-訂閱模式,設備可以通過訂閱特定主題來接收感興趣的消息,而無需直接與其他設備進行點對點通信。
  4. 支持廣播和多播:MQTT可以通過使用通配符和主題過濾器,實現消息的廣播和多播。這意味著一個設備可以發布一條消息,并且多個訂閱者可以接收到該消息,從而實現了一對多和多對多的通信模式。
  5. 支持安全性和認證:MQTT協議提供了各種安全機制,包括傳輸層安全性(TLS/SSL)和身份驗證機制,以確保數據的保密性和完整性。這對于物聯網應用來說至關重要,因為許多物聯網設備處理的是敏感數據。

實時通信設方面

  1. 即時通訊(Instant Messaging):EMQ X可以用作即時通訊系統的后端,支持實時的消息傳遞和即時聊天功能。它可以處理大量的并發連接和消息交換,保證實時性和可靠性。
  2. 在線游戲(Online Gaming):在線游戲通常需要實時的玩家互動和消息傳遞。EMQ X可以作為游戲服務器的消息中間件,處理游戲玩家之間的實時通信和事件傳遞,支持實時游戲場景的需求。
  3. 即時通知和推送服務:EMQ X可以用于構建實時通知和推送服務,例如本人之前基于EMQX做過交易所的行情數推送,實時新聞推送、社交網絡通知等。
  4. 實時監控和數據分發:EMQ X適用于實時監控和數據分發應用,例如物流監控、設備狀態監測、實時數據分析等。它可以接收和分發實時數據流,支持實時事件處理和數據流轉換。
  5. 即時位置共享:EMQ X可以用于構建實時位置共享應用,例如實時定位服務、共享出行等。它可以處理實時位置數據的接收和分發,支持實時位置更新和共享。

分布式集群設計原理

MQX 本身支持分布式集群架構,能夠在保證高可用性、容錯性和可擴展性的同時,處理大量的客戶端和消息。通過使用 EMQX 集群,您可以在一個或多個節點發生故障時仍然保持集群運行,從而享受到容錯和高可用性的好處。

以下是一個四個節點組成的EMQ集群,每個節點都運行一個 EMQX 實例,并且與集群中的其他節點通信,共享客戶端連接、訂閱、發布消息等信息。這允許集群在節點之間自動分配負載并在節點出現故障時提供高可用性

圖片圖片

在集群架構下,我們可以隨著業務的增長向集群添加新節點,從而提供可擴展性。這樣可以處理越來越多的客戶端和消息,而不必擔心單個代理的限制。

消息轉發設計

EMQX 分布式集群的基本功能是轉發和發布消息到訂閱者,如下圖所示。

圖片圖片

為了實現這一目標,EMQX 在 嵌入式數據庫 Mria 中維護著與之相關的幾個數據表:

  • 訂閱表
  • 路由表
  • 主題樹

訂閱表:主題-訂閱者

EMQX 會維護一個訂閱表,用于存儲主題->訂閱者之間的映射關系,從而確保能將傳入消息正確路由到對應的客戶端。該數據只存在于訂閱者所在的 EMQX 節點上,類似的結構如下:

bash

node1:

    topic1 -> client1, client2
    topic2 -> client3

node2:

    topic1 -> client4

路由表:Topic-Node

路由表記錄了 主題->節點 之間的映射,它存儲每個節點上客戶端訂閱的主題列表,并用于將消息路由到對應的節點。該數據會在同一集群中的所有節點復制一份,類似結構如下:

bash

topic1 -> node1, node2
topic2 -> node3
topic3 -> node2, node4

主題樹:主題匹配通配符

主題樹是一種分層數據結構,它存儲有關主題層次結構的信息,并用于消息與訂閱客戶端的匹配。

主題樹會在同一集群中的所有節點復制一份,下面是一個 主題-訂閱關系 的例子:

Client

Node

Subscribed topic

client1

node1

t/+/x, t/+/y

client2

node2

t/#

client3

node3

t/+/x, t/a

當所有的訂閱完成后,EMQX 會維護以下主題樹和路由表。

圖片圖片

消息分發流程

當一個 MQTT 客戶端發布消息時,它所在的節點會查找路由表,并根據消息主題將消息轉發到對應的節點(可能是多個節點)。

然后,接收到消息的節點會查找本地訂閱表,并將消息發送至對應的訂閱者。

例如,當客戶端 1 發布一條消息到主題 t/a 時,消息在節點之間的路由和分發如下:

  1. 客戶端 1 向節點 1 發布一條主題為 t/a 的消息;
  2. 節點 1 查詢主題樹,了解到 t/a 與現有主題 t/a 和 t/# 相匹配。
  3. 節點 1 查詢路由表,并得知:

節點 2 上有客戶端訂閱了 t/# 主題;

節點 3 上有客戶端訂閱了 t/a 主題;因此節點 1 會將消息同時轉發給節點 2 和節點 3。

  1. 節點 2 收到轉發的t/a消息后,通過查詢本地訂閱表,將消息分發給訂閱了 t/# 的客戶端。
  2. 節點 3 收到轉發的 t/a 消息后,通過查詢本地訂閱表,將消息分發給訂閱了 t/a 的客戶端。
  3. 消息發布完成。

連接數測試

5.0支持并發連接數高達 1 億條測試報告:https://www.emqx.com/zh/blog/reaching-100m-mqtt-connections-with-emqx-5-0

快速體驗

安裝

容器化部署是體驗 EMQX 的最快方式,因此本節將以容器化部署為例,在命令行工具中輸入如下命令,下載并運行最新版 EMQX。

docker pull emqx/emqx:5.5.1

docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:5.5.

圖片圖片

通過瀏覽器訪問 http://localhost:18083/(localhost 可替換為您的實際 IP 地址)以訪問 EMQX Dashboard 管理控制臺,進行設備連接與相關指標監控管理,默認用戶名及密碼:admin/public。

圖片圖片

登錄成功之后如下圖

圖片圖片

示例編寫

圖片圖片

下面我們使用Java 語言,寫一個示例,發送消息至主題mytopic ,訂閱端分布為Java后端程序和JS訂閱

Maven依賴項

創建工程并添加Maven依賴項,這里依賴的paho是 mqtt 的一個工具類

<dependency>
  <groupId>org.eclipse.paho</groupId>
  <artifactId>org.eclipse.paho.client.mqttv3</artifactId>
  <version>1.2.5</version>
</dependency>
創建發送消息代碼
package cn.g2link.seg.base.mqtt.test;

import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.eclipse.paho.client.mqttv3.MqttTopic;

public class MqttPublishExample {
    public static void main(String[] args) {
        //emq 的 tcp監聽端口
        String broker = "tcp://localhost:1883";
        String clientId = "mqtt_client1";
        //發送的主題
        String topic = "mytopic";
        //消息體
        String message = "Hello, MQTT!";

        try {
            MqttClient mqttClient = new MqttClient(broker, clientId);
            mqttClient.connect();

            MqttTopic mqttTopic = mqttClient.getTopic(topic);
            MqttMessage mqttMessage = new MqttMessage(message.getBytes());
            mqttTopic.publish(mqttMessage);

            mqttClient.disconnect();
        } catch (MqttException e) {
            e.printStackTrace();
        }
    }
}
創建訂閱消息代碼
Java后端訂閱
package cn.g2link.seg.base.mqtt.test;

import org.eclipse.paho.client.mqttv3.*;

public class MqttSubscribeExample {
    public static void main(String[] args) {
      //emq 的 tcp監聽端口
        String broker = "tcp://localhost:1883";
        String clientId = "mqtt_subsribe_client1";
      //監聽的主題
        String topic = "mytopic";

        try {
            MqttClient mqttClient = new MqttClient(broker, clientId);
            mqttClient.connect();
            System.out.println("connect success" );
            mqttClient.setCallback(new MqttCallback() {
                @Override
                public void connectionLost(Throwable cause) {
                    System.out.println("Connection lost!");
                }

                @Override
                public void messageArrived(String topic, MqttMessage message) throws Exception {
                    String payload = new String(message.getPayload());
                    System.out.println("Received message: " + payload);
                }

                @Override
                public void deliveryComplete(IMqttDeliveryToken token) {
                    // Not used in this example
                }
            });

            mqttClient.subscribe(topic);
            System.out.println(String.format("topic:%s subscribe success ", topic));
            // Keep the program running to receive messages
            while (true) {
                // Do nothing
            }
        } catch (MqttException e) {
            e.printStackTrace();
        }
    }
}
瀏覽器端訂閱

我們通過mqtt.min.js,來連接EMQX暴露的 webscoket 為8083端口,同時訂閱mytopic主題

<html>

<head>
    <script src="https://unpkg.com/mqtt/dist/mqtt.min.js"></script>
    <script>
        // 將在全局初始化一個 mqtt 變量
        console.log(mqtt)

        // 創建一個 MQTT 客戶端實例
        var client = mqtt.connect('mqtt://localhost:8083/mqtt', {
            clientId: 'web-mqtt-client' // 替換為您的客戶端ID
        });

        // 連接成功時的回調函數
        client.on('connect', function () {
            console.log('已連接到 MQTT 服務器');

            // 訂閱主題
            client.subscribe('mytopic'); // 替換為您要訂閱的主題
        });

        // 接收到消息時的回調函數
        client.on('message', function (topic, message) {
            console.log('收到消息:', message.toString());
            // 在這里處理收到的消息,可以根據需要進行相應的邏輯操作
        });

        // 連接斷開時的回調函數
        client.on('close', function () {
            console.log('與 MQTT 服務器的連接已斷開');
        });

        // 連接錯誤時的回調函數
        client.on('error', function (error) {
            console.log('連接發生錯誤:', error);
        });
    </script>
</head>

<body>

</body>

</html>
監控消息(可選)

在主題監控頁面添加mytopic,這一步主要為了觀察發送和消費的次數

圖片圖片

示例驗證

訂閱端啟動

點擊MqttSubscribeExample的 main 方法啟動訂閱

圖片圖片

圖片圖片

啟動成功以后,會在EQMX 控制臺,顯示客戶端連接信息,如下圖顯示了兩個訂閱端

圖片圖片

消息發送

啟動MqttPublishExample的 main 方法,進行消息發送,發送后訂閱端會收到以下消息

Java 后端

圖片圖片

瀏覽器端

圖片圖片

主題監控

查看EQMX 控制臺的主題監控,會看到當前topic 流入和流出條數

圖片圖片

總結

以上只是簡單介紹了什么是 EMQX 以及它的應用場景介紹,要想更多了解EMQX細節,可以訪問官方進行了解。

責任編輯:武曉燕 來源: 架構成長指南
相關推薦

2023-11-10 00:02:17

EMQX物聯網

2018-11-07 09:23:21

服務器分布式機器學習

2019-03-27 08:43:17

Nginx負載均衡服務器

2014-03-12 10:42:10

equeue分布式消息隊列

2019-08-12 16:07:32

Web系統集群

2018-05-31 09:27:38

服務器架構原理

2017-03-13 14:02:10

分布式聊天服務器

2019-01-28 11:03:03

NginxFastDFS服務器

2012-07-06 09:27:02

云計算分布式服務器負載均衡

2021-07-23 08:57:32

鴻蒙HarmonyOS應用

2023-05-29 14:07:00

Zuul網關系統

2012-02-24 09:27:45

x86服務器

2021-02-24 16:17:18

架構運維技術

2020-03-09 08:24:06

TengineWeb代理服務器

2015-05-12 13:03:54

開源分布式存儲HDFS

2022-12-13 09:19:26

分布式消息隊列

2019-09-05 09:02:45

消息系統緩存高可用

2022-07-25 06:42:24

分布式鎖Redis

2017-07-27 14:32:05

大數據分布式消息Kafka

2019-12-27 10:00:34

開源技術 軟件
點贊
收藏

51CTO技術棧公眾號

激情综合丁香五月| 精品免费久久久久久久| 中文字幕+乱码+中文乱码91| 欧美成人自拍| 欧美大片拔萝卜| 欧美变态另类刺激| 高清国产福利在线观看| 国产真实乱子伦精品视频| 久久久亚洲国产| 性猛交娇小69hd| 国产精品一区免费在线| 色综合视频一区二区三区高清| 色综合久久久久久久久五月| www.色呦呦| 日韩精品色哟哟| 久久99精品国产99久久6尤物| 精品夜夜澡人妻无码av| 亚洲三级电影| 一本久道久久综合中文字幕| 超碰97在线看| 黄色av免费在线观看| 国产伦精一区二区三区| 国产成人免费av| 久久精品99久久久久久| 成人激情免费视频| 亚洲精品国产品国语在线| 欧美大片久久久| 色8久久影院午夜场| 亚洲国产中文字幕| 伊人久久婷婷色综合98网| 日本国产在线| 国产91在线|亚洲| 国产精品永久免费| 国产午夜免费福利| 亚洲国产精品一区| 美日韩精品免费视频| 欧美黄色一级生活片| 美女av一区| 精品国产乱码久久久久久久久| 日本黄大片一区二区三区| 欧美男体视频| 欧美日韩中文在线| 9久久9毛片又大又硬又粗| 麻豆福利在线观看| 亚洲欧洲制服丝袜| 亚洲精品一卡二卡三卡四卡| 姝姝窝人体www聚色窝| 国产成人精品免费| 波多野结衣精品久久| 91九色蝌蚪91por成人| 日本91福利区| 国产精品91久久久久久| 欧美一区二区三区不卡视频| 国产精品一国产精品k频道56| 欧美日韩第一页| 九九视频免费观看| 欧美日韩三级电影在线| 欧美福利小视频| 青青草原国产视频| 午夜精品久久| 欧美激情精品久久久久| 久久久久免费看| 狠狠88综合久久久久综合网| 欧美激情视频免费观看| 久久国产露脸精品国产| 在线不卡亚洲| 欧美最猛黑人xxxx黑人猛叫黄| 日本学生初尝黑人巨免费视频| 韩国av一区| 久久久久久这里只有精品| 男人的天堂一区| 99热在线精品观看| 4p变态网欧美系列| 无码人妻一区二区三区线| 六月天综合网| 国产精品自产拍在线观看| 夜夜爽8888| 国产一区二区三区av电影 | 欧美一区二区人人喊爽| 亚洲色图欧美自拍| 粉嫩av一区二区| 亚洲九九九在线观看| 国产传媒国产传媒| 综合久久十次| 性欧美亚洲xxxx乳在线观看| 国内精品福利视频| 美女精品一区二区| 91超碰rencao97精品| 少妇高潮一区二区三区69| 久久免费精品国产久精品久久久久| 日韩av不卡在线播放| 老司机精品影院| 亚洲国产aⅴ天堂久久| 免费在线激情视频| 国产成人77亚洲精品www| 日韩欧美国产综合一区| 国产黄色三级网站| 日韩中文首页| 韩国三级电影久久久久久| 嫩草影院一区二区三区| 国产精品一区三区| 久久久久免费网| 黄在线免费看| 欧美日韩国产丝袜另类| 9l视频白拍9色9l视频| 国产精品国产| 日韩中文视频免费在线观看| 国产一级片免费看| 欧美aa在线视频| 国产伦精品一区二区三区免| yw193.com尤物在线| 亚洲五码中文字幕| 黄色永久免费网站| 国产精品1luya在线播放| 自拍偷拍亚洲区| 精品成人av一区二区在线播放| 奇米色一区二区三区四区| 国产精品久久久一区二区三区| 91在线直播| 激情久久av一区av二区av三区| 亚洲一区二区三区观看| 日韩mv欧美mv国产网站| 久久久成人的性感天堂| 香蕉影院在线观看| 国产91精品露脸国语对白| 日本中文不卡| 日韩激情电影| 欧美tk—视频vk| 九九热久久免费视频| 国产精品一卡| 国产免费一区二区三区| 久久五月精品| 色屁屁一区二区| 日本道中文字幕| 亚洲欧洲中文字幕| 国产精品羞羞答答| 青青青免费视频在线2| 亚洲在线观看免费视频| 午夜视频在线观| 欧美3p视频| 国产精品露脸av在线| 免费看男男www网站入口在线| 亚洲综合色网站| 午夜免费视频网站| 98精品久久久久久久| 国产成人精品优优av| 免费国产在线观看| 岛国av一区二区在线在线观看| 野战少妇38p| 亚洲视频狠狠| 国产欧美韩日| 国产传媒在线| 精品亚洲国产成av人片传媒| 成年人免费看毛片| 99精品一区二区三区| 欧美二区在线视频| 欧美jizz19性欧美| 欧美一级片一区| 九色在线免费| 欧美午夜电影在线播放| 婷婷综合在线视频| 久久99久国产精品黄毛片色诱| 亚洲精品国产精品国自产| 精品69视频一区二区三区| 中文字幕欧美视频在线| 一级特黄aaaaaa大片| 最新日韩在线视频| 久久久久无码精品| 亚洲三级网站| 欧美另类一区| 亚洲精品伊人| 九九精品视频在线观看| 日韩一级片免费看| 色综合久久综合网97色综合| 国产精品理论在线| 国产一区二区三区四区五区入口| 精品久久久无码人妻字幂| 99久久香蕉| 欧美专区福利在线| 欧美日本高清| 精品福利一区二区三区| 九九热精品视频在线| 欧美高清在线视频| 一级黄色免费毛片| 99精品国产在热久久婷婷| 欧美一区三区二区在线观看| www久久久| 国内伊人久久久久久网站视频| 亚洲欧美国产一区二区| 污污的视频在线免费观看| 国产最新精品免费| 少妇高潮喷水在线观看| 欧美一区电影| 99三级在线| 超碰超碰人人人人精品| 在线日韩中文字幕| 精品国产九九九| 一本到三区不卡视频| 91精品一区二区三区蜜桃| 成人小视频在线| 成年人在线观看视频免费| 欧美~级网站不卡| 久久青青草原一区二区| 91精品亚洲一区在线观看| 韩国日本不卡在线| 在线观看精品一区二区三区| 精品国产成人系列| 久久久久久av无码免费看大片| 一区二区三区精品久久久| 国产精品无码久久久久一区二区| 久草精品在线观看| 国产在线青青草| 一本到12不卡视频在线dvd| 欧美日韩免费精品| 午夜日韩影院| 国产精品日本精品| av女在线播放| 久久久国产精品视频| 日韩一区二区三区中文字幕| 欧美一区二区视频在线观看2020| 中文字字幕在线中文| 一区二区在线观看视频在线观看| 亚洲精品国产精品国自产网站| 成人福利电影精品一区二区在线观看| 久久久久久久久久久久91| 日韩av黄色片| 国产欧美一区二区精品性色| 精品1卡二卡三卡四卡老狼| 精品综合久久久久久8888| 波多野结衣家庭教师视频| 欧美久久九九| 精品一区二区三区毛片| 欧美成人自拍| 神马影院午夜我不卡| 亚洲bt欧美bt精品777| 国产精品久久国产三级国电话系列| 婷婷激情成人| 国产美女久久久| 成人日韩在线观看| 人人澡人人澡人人看欧美| wwww亚洲| 久久免费视频这里只有精品| 在线电影福利片| 久久久999国产| 免费av不卡| 日韩在线观看免费高清| 91福利在线视频| 伊人久久久久久久久久久| 精品欧美不卡一区二区在线观看| 亚洲精品97久久| 五月婷婷六月色| 日韩精品中文字幕在线播放| 深夜福利在线观看直播| 亚洲精品videossex少妇| 四虎永久在线精品免费网址| 精品少妇一区二区三区日产乱码| 国产黄色小视频在线观看| 91精品国产综合久久精品性色 | 麻豆网站在线看| 日韩小视频网址| 国产人成网在线播放va免费| 久久躁日日躁aaaaxxxx| 91蜜桃在线视频| 欧美日本黄视频| 永久av免费在线观看| 国内精品久久久久国产盗摄免费观看完整版| 波多野结衣激情| 最新国产精品久久久| wwwwww欧美| 亚洲韩日在线| 免费av网址在线| 久久国产麻豆精品| 午夜免费视频网站| 成人动漫一区二区| 亚洲天堂网一区二区| 国产欧美一区二区精品性 | 一区二区三区高清在线| 国产亚洲精品成人| 亚洲欧美激情诱惑| 中文字幕国产亚洲| 米奇精品一区二区三区| 免费91麻豆精品国产自产在线观看| 在线观看免费视频你懂的| 91国产高清在线| 小黄鸭精品aⅴ导航网站入口| 国产精品永久在线| 中文一区二区三区四区| 久久国产精品高清| 久久美女视频| www..com日韩| 蜜桃视频在线一区| 国产综合内射日韩久| 久久久久88色偷偷免费| 成年人二级毛片| 欧美日韩国内自拍| 91片黄在线观看喷潮| 亚洲国产毛片完整版| 国产精品免费播放| 欧美黑人又粗大| 成人黄色图片网站| 国产欧美日韩一区| 成人精品影视| 黄色国产一级视频| 久久国产精品99久久久久久老狼| 日本精品一二三区| 国产精品视频你懂的| 中文字幕一区二区三区手机版 | 99亚洲乱人伦aⅴ精品| 欧美精品123| 欧美精品91| 另类小说第一页| 99久久久久免费精品国产 | 国产成人涩涩涩视频在线观看| 日本一区精品视频| 日韩免费一区二区三区| 亚洲视频一区| 久久撸在线视频| 久久精品视频免费观看| 国产无遮挡又黄又爽在线观看| 欧美日韩中文精品| 狠狠噜天天噜日日噜| 欧美精品福利| 天堂一区在线观看| 久久影视一区二区| 中文字幕手机在线观看| 欧美日韩在线电影| 同心难改在线观看| 欧美—级高清免费播放| 3d动漫一区二区三区在线观看| 欧美xxxx黑人又粗又长精品| 激情综合网址| 能看毛片的网站| 亚洲人精品午夜| 91亚洲国产成人久久精品麻豆 | 欧美18一19xxx性| 国产精品久久久久aaaa九色| 欧美亚洲色图校园春色| 精品国产一区二区三区无码| 国产麻豆9l精品三级站| 欧美日韩午夜视频| 欧美精品一二三| av在线日韩国产精品| 日韩av片永久免费网站| 亚洲另类av| 欧美xxxxx在线视频| 久久蜜桃av一区精品变态类天堂| 国产成人免费观看视频| 亚洲国产精品成人精品| 波多野结衣久久| 国产亚洲一区在线播放| 亚洲久久视频| 特级西西人体4444xxxx| 精品久久在线播放| 深夜福利免费在线观看| 国产97免费视| 热久久天天拍国产| 日日躁夜夜躁aaaabbbb| 中文字幕成人av| 亚洲视频在线观看一区二区| 色老头一区二区三区| 亚洲欧美综合久久久久久v动漫| 亚洲一区二区三区四区中文| 蜜桃精品视频在线观看| 少妇高潮在线观看| 在线不卡欧美精品一区二区三区| 二区三区四区高清视频在线观看| 亚洲精品日韩激情在线电影| 国产精品地址| 亚洲制服丝袜在线播放| 色悠悠亚洲一区二区| 瑟瑟视频在线| av一区二区三区四区电影| 亚洲黄色在线| 手机免费看av| 91麻豆精品国产91久久久更新时间| www.欧美日本韩国| 国产精品一区二区不卡视频| 久久久久国产精品一区三寸| 国产精品一区二区亚洲| 日韩一区二区精品葵司在线| 7777kkk亚洲综合欧美网站| 欧美日韩一区二区三区在线视频| 七七婷婷婷婷精品国产| 波多野结衣在线网址| 亚洲国产成人精品电影| 成人自拍av| 99久re热视频精品98| 99视频精品在线| 夜夜躁很很躁日日躁麻豆| 久久久久久久久久国产| 国产精品va在线观看视色| 亚洲精品97久久| 成人黄页网站视频| 日韩精品视频在线观看视频| 久久九九全国免费| 国产日韩在线观看一区| 97香蕉超级碰碰久久免费软件 | 成人av中文字幕| 老熟妇一区二区三区| 欧美日本国产在线|