精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

欧美一区二区三级| 一区二区三区四区五区在线| 日韩欧美在线观看| 乱色588欧美| 黄色av网站免费观看| 精品日产免费二区日产免费二区| 日韩欧美中文字幕在线观看 | 8av国产精品爽爽ⅴa在线观看| 久久综合资源网| 国产精品久久久久久久av电影| 第一次破处视频| 欧美视频第一| 亚洲一区免费在线观看| 免费亚洲一区二区| 一区二区视频网站| 一区免费视频| 亚洲日本成人女熟在线观看| 亚洲免费黄色录像| 岛国av在线网站| 欧美高清在线一区二区| 99九九视频| 日韩在线视频不卡| 亚洲91精品| 亚洲免费视频网站| 免费网站在线观看黄| 狠狠躁少妇一区二区三区| 国产片一区二区三区| 99国产视频在线| 午夜精品久久久久久久蜜桃| 一区二区三区在线观看免费| 日韩毛片在线看| 男人添女人下面免费视频| 97在线视频免费观看完整版| 日本一区二区三区dvd视频在线| 91网站在线看| 狠狠精品干练久久久无码中文字幕| 一本岛在线视频| 羞羞网站在线看| 国产日产亚洲精品系列| 97影院在线午夜| 99re国产在线| 国内视频精品| 久久精品一区中文字幕| 性色av蜜臀av色欲av| 精品三级国产| 在线观看免费一区| 人妻熟妇乱又伦精品视频| 嫩草香蕉在线91一二三区| 久久先锋资源网| 国产精品加勒比| 国产精品伊人久久| 日韩精品一二三| 136fldh精品导航福利| 丝袜美腿小色网| 天天射综合网视频| 一本一本久久a久久精品综合小说| 天天躁日日躁狠狠躁av麻豆男男| 成人豆花视频| 亚洲444eee在线观看| 日韩欧美视频一区二区| 国产美女免费网站| 91久久精品国产91性色69 | 亚洲一级免费视频| 李丽珍裸体午夜理伦片| 欧美一区一区| 7878成人国产在线观看| 我要看一级黄色大片| 黑人巨大精品| 欧美日韩国产限制| 国产素人在线观看| 丰乳肥臀在线| 亚洲一级不卡视频| 免费人成自慰网站| 免费毛片在线看片免费丝瓜视频| 亚洲美女淫视频| 久久天天东北熟女毛茸茸| 国产在线观看a视频| 中文字幕在线不卡| 男插女免费视频| caoporn97在线视频| 亚洲婷婷综合久久一本伊一区| 亚洲一区精品视频| 久久综合网导航| 亚洲男同性恋视频| 国产一区二区三区在线免费| 色呦呦在线看| 五月天国产精品| 欧美丰满熟妇bbbbbb百度| 中老年在线免费视频| 色综合久久中文综合久久97 | 乱一区二区av| 91视频国产精品| 蜜桃av中文字幕| 91一区一区三区| 欧美精品一区二区三区四区五区 | 久久久久久久免费| 国产黄色在线播放| 午夜国产在线观看| 国产成人综合亚洲91猫咪| 444亚洲人体| 色呦呦免费观看| 久久丝袜美腿综合| 亚洲欧美影院| 婷婷丁香在线| 欧美色播在线播放| 亚洲精品手机在线观看| 日韩欧美一级| 亚洲新中文字幕| 国产高潮国产高潮久久久91| 亚洲午夜在线| 欧美二区在线播放| 五月天综合激情网| 日本不卡一区二区三区| 国产精品偷伦免费视频观看的| 国产免费不卡av| 99国产一区二区三精品乱码| 婷婷四月色综合| 免费电影视频在线看| 在线视频一区二区免费| 五月天国产视频| 日韩激情啪啪| www.欧美精品| 69视频免费在线观看| 热久久国产精品| 国产99视频精品免费视频36| 免费国产在线观看| 一二三四区精品视频| 欧美一级片中文字幕| 久久久久久久久成人| 亚洲美女av在线播放| 精品无码一区二区三区蜜臀| 国产人成精品一区二区三| 成人福利网站在线观看11| 熟妇高潮一区二区三区| 日韩理论片一区二区| 国产精品亚洲αv天堂无码| 国产视频一区二区在线播放| 亚洲国产精品va在线| 成人性视频免费看| 99精品99| 99久久精品无码一区二区毛片| 国产一区二区三区福利| 午夜影视日本亚洲欧洲精品| 在线一区二区不卡| 不卡一区2区| 91成人福利在线| 国产成人精品a视频| 亚洲国产精品高清| 99999精品视频| 国产精品超碰| 欧美日韩第一页| 一级片视频播放| 国产日韩欧美一区二区三区综合| 老太脱裤子让老头玩xxxxx| 综合激情网...| 久久久久北条麻妃免费看| 日本视频免费观看| 91小视频在线| 水蜜桃色314在线观看| 亚洲精品一区二区三区中文字幕 | 国产另类在线| 欧美美女操人视频| 国产男女无套免费网站| 国产精品久久久久天堂| 婷婷六月天在线| 国产99精品一区| 亲爱的老师9免费观看全集电视剧| 亚洲精品喷潮一区二区三区| 一区二区三区不卡在线观看| 色综合色综合色综合色综合| av在线不卡顿| 国产精品国模在线| аⅴ资源新版在线天堂| 91精品1区2区| 天天舔天天操天天干| 热久久一区二区| 中文字幕在线亚洲精品| 日韩有码欧美| 欧美成aaa人片免费看| 国产三级三级在线观看| 日韩理论片一区二区| 黄色一级片免费播放| 欧美在线看片| 国产精品12| 在线天堂中文资源最新版| 亚洲性日韩精品一区二区| 香蕉污视频在线观看| 国产亚洲综合在线| 免费看污污网站| av永久不卡| 国产人妖伪娘一区91| 黄av在线免费观看| 欧美成人a∨高清免费观看| 久久免费视频精品| 26uuu亚洲婷婷狠狠天堂| 男人操女人免费| 第一会所亚洲原创| 91在线视频九色| 91av久久| 国产一区二区三区18| 97人妻精品一区二区三区动漫| 亚洲精品国产第一综合99久久 | 欧美成人精品二区三区99精品| 日韩污视频在线观看| 国产午夜亚洲精品不卡| 午夜免费看毛片| 狠狠色综合网| 涩涩涩999| 亚洲超碰在线观看| 清纯唯美亚洲激情| 欧美69xxxx| 精品视频久久久久久久| 91在线视频国产| 亚洲成在人线免费| 99久久久无码国产精品衣服| 国产综合一区二区| 精品欧美一区免费观看α√| 日韩欧美一区二区三区在线视频| 国产成人免费观看| 国产成人精品一区二区三区在线| 最新国产精品亚洲| 亚洲国产精品成人久久蜜臀| 91国内精品野花午夜精品| 中文字幕观看av| 久久夜色精品国产噜噜av| 日本免费色视频| 黄色av一区| 亚洲欧美日韩国产成人综合一二三区| 都市激情亚洲欧美| 91久久精品在线| 天然素人一区二区视频| 98视频在线噜噜噜国产| 菠萝菠萝蜜在线观看| 亚洲桃花岛网站| 免费看黄色一级视频| 欧美高清你懂得| 日韩一级在线视频| 亚洲一二三四在线| 国产成人av免费在线观看| 国产欧美一区在线| 国产高清成人久久| 国产精品一品视频| 爱爱爱爱免费视频| 亚洲裸体俱乐部裸体舞表演av| 三级网在线观看| 欧洲乱码伦视频免费| 国内精品二区| 成人黄色av网址| 91超碰在线免费观看| 欧美视频第一| 国产精品视频资源| 欧美一区久久久| 97国产精品视频人人做人人爱| 在线视频中文字幕第一页| 日韩视频在线免费| 午夜免费福利在线观看| 原创国产精品91| 精品资源在线看| 亚洲美女在线观看| 天堂中文资源在线| 日韩精品极品毛片系列视频| 日批视频在线播放| 亚洲国产私拍精品国模在线观看| 可以免费看毛片的网站| 精品久久久久久久一区二区蜜臀| 91精品国产乱码久久| 欧美日韩国产bt| 一级片视频网站| 91精品国产乱| 精品久久久久成人码免费动漫| 欧美美女一区二区在线观看| 亚洲视频在线免费播放| 欧美日韩日日骚| 国产又粗又黄视频| 欧美一区二区在线播放| 国产激情视频在线播放| 精品国产乱码久久久久久久久| 色呦呦视频在线| 国产午夜精品久久久| 超碰国产在线| 理论片在线不卡免费观看| 日本在线观看大片免费视频| 久久久免费观看| 国产美女高潮在线观看| 欧美激情小视频| 咪咪网在线视频| 国产精品久久久久久久久免费 | 毛葺葺老太做受视频| 秋霞成人午夜伦在线观看| www.com久久久| 国产精品69毛片高清亚洲| 无码人妻丰满熟妇啪啪网站| 91亚洲精品久久久蜜桃网站| 四虎永久免费在线观看| 日本一区二区不卡视频| 黄色免费一级视频| 亚洲自拍偷拍九九九| 九一国产在线观看| 欧美日韩一区二区三区免费看| 国产精品视频久久久久久| 欧美岛国在线观看| 青青草免费在线| 日韩在线观看成人| bl在线肉h视频大尺度| 国产成人久久精品| 成人精品视频在线观看| 国产精品裸体一区二区三区| 国产亚洲一区| 久久久久久久久久久久久国产| 国产精品v一区二区三区| 国产欧美在线一区| 精品无人码麻豆乱码1区2区| 少妇被狂c下部羞羞漫画| 中文字幕第一区第二区| 久久免费在线观看视频| 欧美日韩综合色| 人妻va精品va欧美va| 色老头一区二区三区在线观看| 久草在线视频福利| 国产精品一区专区欧美日韩| 国产精品男女| 正在播放精油久久| 国产精品亚洲综合色区韩国| 日本77777| 99精品欧美一区二区三区综合在线| 欧美性受xxxx黑人| 天天综合色天天综合| 一二三四区在线| 亚洲美女精品久久| av电影在线免费| 国产在线视频一区| 自拍偷拍一区| 欧美在线一区视频| 国产精品一区二区三区四区| 久操视频在线观看免费| 精品成人久久av| 91精品国自产| 日韩成人激情视频| 久久77777| 国产精品久久久久久久久粉嫩av| 久9re热视频这里只有精品| 欧美少妇在线观看| 久久国产精品99久久人人澡| 青青草福利视频| 亚洲成人av电影在线| 国产av无码专区亚洲a∨毛片| 夜夜躁日日躁狠狠久久88av| caoporn视频在线| 99视频在线| 自拍视频亚洲| 欧美成年人视频在线观看| 久久午夜国产精品| 国产成人一级片| 精品亚洲夜色av98在线观看| 僵尸再翻生在线观看| 国产成人av一区二区三区| 欧美一区二区三区免费看| 久久久久久久久久一区| 国产精品久久久久久久久晋中| 一级片在线免费播放| 亚洲免费电影一区| 97久久人人超碰caoprom| 国产精品一级久久久| 亚洲午夜黄色| 中文字幕第3页| 精品福利在线视频| 肉丝一区二区| 日韩av电影手机在线| 欧美一级本道电影免费专区| 三上悠亚在线一区| 亚洲精品国产精华液| 五月激情婷婷网| 国产精品av电影| 亚洲精品久久久| 国内精品免费视频| 91成人在线精品| 麻豆网在线观看| 黄色99视频| 免费一级欧美片在线观看| 丁香花五月激情| 日韩国产精品视频| 国产a亚洲精品| 大西瓜av在线| 国产欧美精品在线观看| 国产三级漂亮女教师| 欧美一区二区三区免费视| 欧美色婷婷久久99精品红桃| 日本少妇一区二区三区| 欧美色xxxx| 在线观看h网| 欧美一级片免费观看| 精品一区二区在线免费观看| 午夜影院在线看| 按摩亚洲人久久| 日韩动漫一区| 男人操女人下面视频| 色综合色综合色综合色综合色综合| 久久久久久久久免费视频| 久久综合一区二区三区| 国产一区不卡视频|