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

為什么 NodeJS 是構(gòu)建微服務的最佳選擇?

開發(fā) 前端
在構(gòu)建微服務時,有很多優(yōu)秀編程語言可供選擇。NodeJS 就是其中之一。那么,為什么 NodeJS 是最佳選擇呢?

什么是微服務

微服務是一種應用架構(gòu),它將每個應用功能都放在自己的服務中,與其他服務隔離。這些服務是松散耦合的,可獨立部署。

這種架構(gòu)的出現(xiàn)是為了解決舊的 Web 應用開發(fā)的單體方法。在單體軟件中,所有的東西都是作為一個單元構(gòu)建的,所有的業(yè)務邏輯都被歸入一個廣泛的應用。

這種方法使更新代碼庫的過程變得復雜化,因為它影響到整個系統(tǒng),即使是最小的代碼改動也需要構(gòu)建和部署整個軟件的新版本。此外,哪怕你只想擴展應用的某個特定功能,卻需要擴展整個應用來實現(xiàn)它。

微服務解決了單體系統(tǒng)所面臨的這些挑戰(zhàn),它將應用從一個整體分割成幾個小部分。

什么時候應該使用微服務?

從本質(zhì)上講,微服務架構(gòu)解決了龐大、復雜應用的快速開發(fā)問題。

對于“哪個更好?”這一問題,目前還沒有通用的答案。答案取決于各種情況,因為每一種情況都有其好處和缺點。

下面是一些微服務架構(gòu)的優(yōu)點和缺點,你可能對此已經(jīng)有所了解:

優(yōu)點

  • 語言不可知性:微服務并不限于特定的編程語言,每個微服務都可以用不同的語言來編寫,以支持選定的通信協(xié)議。
  • 可擴展性:由于微服務和它的職責可以由開發(fā)者共同承擔,所以如果有一個大的團隊參與到這個項目中,應用就會變得更加易于維護。
  • 無限迭代:由于開發(fā)者不會被其他組件所束縛,所以在微服務上迭代會變得更加簡單。
  • 單元測試:由于微服務是獨立的應用,它的重點是特定的功能,因此,開發(fā)者可以很輕松地編寫測試腳本,以驗證該特定功能。

缺點

要作為一個整體來管理是很困難的:凱撒大帝有一句名言“分而治之”(divide et impera,拉丁語),即使在這里也可以大規(guī)模應用,但是要謹慎,因為過多的活動部分會變得難以管理。

  • 難以追蹤:如果架構(gòu)變得過于復雜,微服務之間的通信渠道會非常多,出現(xiàn)錯誤后會很難追溯并確定故障點。
  • 需要大量的專業(yè)知識:構(gòu)建和部署微服務要求非常高的計劃和協(xié)調(diào)方面的軟技能。
  • 具有挑戰(zhàn)性的測試:測試是一把雙刃劍,因為微服務作為一個整體更難測試。集成和端到端的測試同樣會有挑戰(zhàn)。
  • 審計日志:可能更難獲得和調(diào)查。

在架構(gòu)方面,SaaS 微服務非常適合,因為微服務是 SaaS 應用的一個不錯的選擇。由于這類應用想要用戶付錢買單,那么它就需要提供高可用的服務,因此將軟件分成小塊可以加快恢復速度。同時,SaaS 應用的發(fā)展主要是由其社區(qū)推動,所以,它也會受到很多變化的影響,而通過微服務和解耦,開發(fā)者可以獲得了靈活性,這是單體架構(gòu)無法提供的。

單體應用程序可能難以水平擴展,因為你必須復制整個應用程序,如果它依賴于單個數(shù)據(jù)庫,這個過程將變得更加困難。另一邊,微服務卻可以根據(jù)單個服務進行擴展、復制或負載平衡。比如,如果你需要發(fā)送更多的電子郵件,你只需要擴展負責電子郵件功能的微服務。今天你有 10 個用戶,明天你有 1000 個;SaaS 應用可以在短時間內(nèi)維持大規(guī)模的增長,這就是為什么他們的架構(gòu)必須要以最經(jīng)濟的方式進行輕松擴展的原因。

這樣還可以減少資源的消耗,因此可以減少賬單。所以,可以肯定地說,微服務是 SaaS 企業(yè)架構(gòu)的下一個階段。

弄清你是否需要微服務的最好方法是問自己:我有關于單體應用的問題嗎?如果有的話,或許你應該考慮轉(zhuǎn)向微服務。如果沒有,那就堅持下去——沒有必要把時間花在一個根本不存在的問題上。

微服務通信是如何工作的?

由于服務之間彼此獨立,所以與微服務的通信需要好好選擇。通信協(xié)議的使用不當會造成應用的性能下降,大家必須根據(jù)自己應用的具體需求來選擇通信協(xié)議。

有兩種通信方式可以選擇:同步通信和異步通信,這是請求 - 響應和基于事件的模式的基礎。

在第一種情況下,即同步方式,客戶端發(fā)送請求并等待響應。這種方法有一個缺陷,那就是它是一個阻塞模式。但是,如果你有一個讀操作非常多的應用時,那就不一定了,因為你的應用更傾向從外部讀取和接受信息。在這種情況下,使用同步方式可能是一個很好的選擇,特別是當它涉及實時數(shù)據(jù)時。

我們的另一個選擇是異步通信,這是一個非阻塞模式。如果你想要一種有彈性的微服務,那么,與同步通信相比,異步通信是一種更好的選擇。在這種情況下,客戶端會發(fā)送一個請求,收到請求的確認,并將其遺忘。這種方法最適用于大量寫操作、無法承受數(shù)據(jù)記錄丟失的應用。

下面是一些涉及微服務通信的解決方案,你可以從中選擇:

  • 基于 HTTP 的 REST
  • 基于 HTTP/2 的 REST
  • WebSocket
  • TCP 套接字
  • UDP 數(shù)據(jù)包

好好考慮最適合自身需求的通信協(xié)議,因為這將使應用響應更快、效率更高。

為什么 NodeJS 用于微服務?

在構(gòu)建微服務時,有很多頂級編程語言可供選擇。NodeJS 就是其中之一。那么,為什么 NodeJS 是最佳選擇呢?

  • 單線程 & 異步:NodeJS 使用事件循環(huán)來執(zhí)行代碼,允許異步代碼被執(zhí)行,從而使服務器能夠使用非阻塞機制來響應。
  • 事件驅(qū)動:NodeJS 使用事件驅(qū)動架構(gòu),該架構(gòu)建立在軟件開發(fā)的常見模式上,被稱為發(fā)布 - 訂閱或觀察者模式,能夠構(gòu)建強大的應用,尤其是實時應用。
  • 快速和高度的可擴展性:運行環(huán)境建立在最強大的 JavaScript 引擎之一 V8 JavaScript Engine 之上,因此代碼執(zhí)行速度快,使得服務器能夠同時處理多達 10000 個并發(fā)請求。
  • 易于開發(fā):創(chuàng)建多個微服務會導致重復的代碼。Node.js 的微服務框架很容易創(chuàng)建,因為它抽象了大部分的底層系統(tǒng)。所以用這種編程語言創(chuàng)建一個微服務可以像寫幾行代碼一樣簡單。

實施微服務架構(gòu)

我們從創(chuàng)建用于用戶管理的微服務開始,它將使用 TCP 數(shù)據(jù)包進行通信,并負責對用戶進行 CRUD 操作。我們將使用 PacketSender 對其進行測試,PacketSender 是一個免費的工具,用于發(fā)送支持 TCP 的網(wǎng)絡數(shù)據(jù)包。

微服務的架構(gòu)和作用域被進一步界定。因此,從演示的角度來看,通過 HTTP 實現(xiàn)一個微服務與實現(xiàn) NodeJS API 沒有什么不同。

同時,通過 HTTP 來使用 REST 也很容易,但如果從這個協(xié)議切換到其他協(xié)議時,會出現(xiàn)一些問題。這也是本文中我們將會使用 TCP 包的異步模式來與微服務通信的原因。

我們將使用 NestJS 作為應用的框架。它并非 NodeJS 微服務框架,而是一個用于構(gòu)建服務器端應用的框架。但是,由于其內(nèi)置了多個微服務特性,使得工作變得更加容易。

步驟一:微服務設置

用 Node.js 構(gòu)建微服務相當容易,尤其是用 NestJS 框架。開始時,可以使用 CLI 創(chuàng)建一個新的 NestJS 應用,使用如下命令:

npx @nestjs/cli new user-microservice

該命令會創(chuàng)建并初始化一個新項目。要開始構(gòu)建一個微服務,你需要安裝以下軟件包:

npm i --save @nestjs/microservices

最后,為了讓微服務啟動和運行,我們需要用以下內(nèi)容更新 main.ts 文件:

import { INestMicroservice } from '@nestjs/common';
import { NestFactory } from '@nestjs/core';
import { Transport } from '@nestjs/microservices';
import { AppModule } from './app.module';

async function bootstrap() {
const microservicesOptions: any = {
transport: Transport.TCP,
options: {
host: '127.0.0.1',
port: 8875,
},
};

const app: INestMicroservice = await NestFactory.createMicroservice(
AppModule,
microservicesOptions,
);

app.listen(() => console.log('Microservice is listening'));
}
bootstrap();

NestJS 支持幾個內(nèi)置的傳輸層實現(xiàn),稱為傳輸器。上面的代碼將創(chuàng)建一個微服務,通過 TCP 傳輸層綁定到本地機器的 8875 端口進行通信。

步驟 2:微服務監(jiān)聽消息

我們可以使用消息模式或事件模式來與微服務通信。

消息模式的作用就像一個請求 - 響應方法,它適用于在服務之間交換消息,而當你只想發(fā)布事件而不等待響應時,就可以使用事件模式。

在我們的案例中,我們只實現(xiàn)根據(jù)給定的輸入創(chuàng)建一個用戶的功能,并且將獲得創(chuàng)建的用戶。因此,我們將在 app.controller.ts 文件中注冊一個名為 create_user 的消息模式。

@Controller()
export class AppController {
constructor(private readonly appService: AppService) {}

@MessagePattern('create_user')
async createUser(@Payload() payload: CreateUserDto) {
const user = await this.appService.createUser(payload);
return user;
}
}

我們抽象出創(chuàng)建新用戶的邏輯,因為它可以根據(jù)需求和使用的數(shù)據(jù)庫以各種方式實現(xiàn),我們將只關注與微服務相關的主題。

我們用來創(chuàng)建一個新用戶的有效負載有以下格式:


import { IsString, IsEmail } from 'class-validator';

export class CreateUserDto {
@IsEmail()
email: string;

@IsString()
password: string;
}

一個帶有 email 和 password 的簡單對象

步驟 3:測試微服務

為了測試這個微服務,我們將使用 PacketSender 向應用發(fā)送一個 TCP 包。為此,將地址和端口設置為 127.0.0.1:8875,并從右側(cè)的下拉菜單中選擇 TCP。要對我們的信息進行編碼,請使用 ASCII 字段,并用以下值來完成:

122#{"pattern":"create_user",
"data":{"email":"d@gmail.com","password":"12345678"},
"id":"ce51ebd3-32b1-4ae6-b7ef-e018126c4cc4"}

pattern:是我們正在尋找的信息,create_user。

data:是我們要發(fā)送的 JSON 對象,一個帶有 email 和 password 的對象。

值 122 代表我們的消息的長度,從第一個大括號開始到最后一個大括號(包括兩個)。

數(shù)據(jù)包發(fā)送器配置

如果我們點擊 Send 按鈕,我們會看到如下日志:

日志活動

第二個是我們發(fā)送給微服務的內(nèi)容,第一個是我們收到的內(nèi)容。里面的響應是由我們的微服務返回的對象,即被創(chuàng)建的用戶。

步驟 4:API 網(wǎng)關

現(xiàn)在我們有了微服務,并進行了快速測試,看它是否能接收請求并返回響應,現(xiàn)在是時候創(chuàng)建一個 API 網(wǎng)關并將其連接到微服務上了。

為此,我們將使用上面描述的相同步驟創(chuàng)建一個新的 NestJS 應用,然后用以下內(nèi)容更新 app.module.ts 文件。

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { ConfigService } from "./config/config.service";

@Module({
imports: [],
controllers: [AppController],
providers: [
{
provide: 'USER_MICROSERVICE',
useFactory: (configService: ConfigService) => {
const options = {
transport: Transport.TCP,
options: {
host: configService.get('USERS_MICROSERVICE_HOST'),
port: Number(configService.get('USERS_MICROSERVICE_PORT')),
},
};
return ClientProxyFactory.create(options as ClientOptions);
},
inject: [ConfigService],
},
AppService,
],
})
export class AppModule {}

我們將使用 .env 文件,我們將在其中存儲任何與配置有關的值。這些文件將在一個配置服務的幫助下被讀取。該微服務可以在 host 127.0.0.1:8875 處找到,其中 port 為 8875。

通過上面的代碼,我們使用 ClientProxy 注入一個新的對象,代表與我們的用戶 - 微服務的連接。這個 NestJS 類提供了幾個內(nèi)置的工具來與遠程微服務交換信息。

為了使用這個鏈接對象,我們可以在 AppController 或 AppService 中注入它,如下所示:

@Controller()
export class AppController {
constructor(
@Inject('USER_MICROSERVICE') private readonly client: ClientProxy,
private readonly appService: AppService
) {}

@Post('create-user')
async createUser(@Body() payload: CreateUserDto) {
return this.client.send('create_user', payload).toPromise();
}
}

現(xiàn)在,每次 API 在路由 create-user 處受到 POST 請求時,API 網(wǎng)關將把請求和有效載荷一起轉(zhuǎn)發(fā)給微服務,然后從微服務返回響應給用戶。

責任編輯:趙寧寧 來源: 前端之巔
相關推薦

2021-12-29 08:30:48

微服務架構(gòu)開發(fā)

2023-09-15 12:30:06

微服務架構(gòu)管理

2012-05-28 10:02:22

OpenStackIaaS云計算

2017-06-16 14:18:54

2012-05-31 15:47:14

OpenStack架構(gòu)云計算

2024-10-07 09:00:58

2019-08-26 09:15:09

設計技術人生第一份工作

2024-12-31 11:05:07

2024-11-06 16:27:12

2021-07-20 08:03:43

微服務應用程序

2023-12-04 07:14:40

通信微服務

2024-05-17 13:48:19

2021-12-05 23:14:24

微服務GolanggRPC

2023-12-19 07:56:08

微服務軟件測試左移測試

2016-01-20 09:54:51

微服務架構(gòu)設計SOA

2024-09-04 17:49:27

2020-04-21 11:03:34

微服務數(shù)據(jù)工具

2024-04-15 14:25:06

2021-04-25 10:26:34

Python機器學習人工智能

2022-01-23 22:45:52

物聯(lián)網(wǎng)Java編程語言
點贊
收藏

51CTO技術棧公眾號

国产精品久久久久久久成人午夜| 成人影视免费观看| 天堂av资源在线观看| 成人做爰69片免费看网站| 久久久亚洲国产天美传媒修理工| 亚洲久久久久久| 亚洲成av在线| 一区二区三区美女视频| 玛丽玛丽电影原版免费观看1977 | 欧美wwww| 国产亚洲精品资源在线26u| 国产日产欧美精品| 亚洲黄色一区二区| 日韩影院二区| 亚洲国产精品福利| 欧美一级视频在线| 欧美电影免费观看| 亚洲精品欧美在线| 日本一区二区精品视频| 亚洲精品成人电影| 美国十次了思思久久精品导航| 欧美裸体男粗大视频在线观看| 泷泽萝拉在线播放| 亚洲不卡在线| 欧美喷潮久久久xxxxx| 亚洲午夜精品久久久久久人妖| 免费超碰在线| 国产欧美一区在线| 激情视频一区二区| 国产a级免费视频| 老司机久久99久久精品播放免费| 欧美大片第1页| 免费精品在线视频| 国产伦精品一区二区三区千人斩| 精品国产乱码久久久久久久久| 久久人人爽av| 日日av拍夜夜添久久免费| 性做久久久久久免费观看| 自拍偷拍一区二区三区| 高清av在线| 久久久久久久性| 国产女人水真多18毛片18精品| 国产chinasex对白videos麻豆| 麻豆91在线看| 国产精品香蕉国产| 国产一区免费看| 日本强好片久久久久久aaa| 日本不卡免费高清视频| 日韩免费视频一区二区视频在线观看| 久久麻豆精品| www.亚洲一区| 自拍偷拍你懂的| 欧美系列电影免费观看| 亚洲精品国精品久久99热| 国内精品免费视频| 亚洲天堂中文字幕在线观看 | 天堂а在线中文在线无限看推荐| 福利一区二区在线| 国产精品高清一区二区三区| 99热这里只有精| 国产精品正在播放| 亚洲tv在线观看| www.色呦呦| 国产精品一区三区在线观看| 91超碰这里只有精品国产| 91女神在线观看| 日本午夜精品久久久久| 欧美精品久久一区二区三区| 91精品视频国产| 日韩成人18| 精品国产乱码久久久久久免费| 国产性猛交96| 午夜a一级毛片亚洲欧洲| 亚洲美女性视频| 九九热久久免费视频| 国产电影一区二区在线观看| 久久久精品免费| 青青草在线观看视频| 国产精品av久久久久久麻豆网| 久久久亚洲网站| 综合激情网五月| 日本aⅴ免费视频一区二区三区 | 伊人网站在线观看| 精东粉嫩av免费一区二区三区| 91国产丝袜在线放| 欧美一区二区在线观看视频| 久久综合狠狠综合久久综合88| 午夜精品一区二区在线观看的| 中文在线最新版天堂| 狠狠色伊人亚洲综合成人| av成人观看| 欧美婷婷久久五月精品三区| 国产精品妹子av| 999久久欧美人妻一区二区| 精品捆绑调教一区二区三区| 欧洲一区二区三区免费视频| 亚洲美女爱爱视频| 北条麻妃在线一区二区免费播放| 亚洲欧洲激情在线| av激情在线观看| 亚洲一级在线| 91夜夜未满十八勿入爽爽影院| 男人天堂av网| 亚洲国产精品成人综合| 青青青在线观看视频| 欧美成人黑人| 精品国产免费一区二区三区香蕉| 国产精成人品免费观看| 国色天香一区二区| 国产精品一香蕉国产线看观看| 色婷婷激情五月| 中文字幕一区二区三中文字幕| 男女啪啪免费视频网站| 57pao成人永久免费| 日韩av在线高清| 欧美国产日韩在线观看成人| 国产精品呻吟| 亚洲综合在线播放| 97超碰人人在线| 欧美日韩一区二区在线| 色综合久久久无码中文字幕波多| 欧美精品一区二区三区精品| 97婷婷大伊香蕉精品视频| 欧美激情精品久久| 麻豆成人久久精品二区三区小说| 欧美精彩一区二区三区| jizz一区二区三区| 欧美一级二级三级蜜桃| 国产又粗又猛又爽又黄的视频四季| 99在线精品视频在线观看| 福利精品视频| 中文字幕在线三区| 777欧美精品| 法国空姐电影在线观看| 国产精品久久久久久久久久妞妞 | 国产熟女一区二区丰满| 中日韩免费视频中文字幕| 精品一区二区中文字幕| 日韩精选在线| 88xx成人精品| 天堂а√在线8种子蜜桃视频 | 久久精品日产第一区二区三区高清版| 久艹在线免费观看| 久久久久久亚洲精品美女| 尤物99国产成人精品视频| 日韩免费黄色片| 99久久99久久精品免费看蜜桃| 美女av免费观看| 日韩美女在线| 中文字幕日韩精品在线| 久久久久久福利| 高清视频一区二区| 超碰97在线看| 视频在线一区| 九九精品在线观看| 91亚洲国产成人久久精品麻豆| 久久精品人人做| 精品视频一区二区在线| 美女主播精品视频一二三四| 欧美乱人伦中文字幕在线| 中文字幕人妻一区二区三区视频 | 国产精品久久国产愉拍| 国产九色91| xx欧美xxx| 亚洲精品一区二区在线| 中文字幕亚洲精品一区| 91视频xxxx| 国模吧无码一区二区三区| 国产亚洲欧美日韩在线观看一区二区| 欧美亚洲伦理www| 无码国精品一区二区免费蜜桃| 亚洲国产婷婷综合在线精品| 制服丝袜av在线| 新67194成人永久网站| 另类欧美小说| 久久uomeier| 在线中文字幕日韩| 亚洲视频一区二区三区四区| 亚洲精品国产成人久久av盗摄| 18禁一区二区三区| 黄色精品网站| 欧美高清性xxxxhd| 992tv国产精品成人影院| 亚洲天堂男人的天堂| 中文字幕在线播出| 国产精品久久久久四虎| 奇米777在线| 黑丝一区二区| 日本一区二区三区www| 天堂久久一区| 欧美精品videosex极品1| 无码精品视频一区二区三区| 欧洲一区二区av| 久久精品性爱视频| 久久精品视频在线看| 伊人影院综合在线| 欧美国产三区| 国产二区不卡| 成人亚洲综合| 九九热这里只有精品免费看| 免费国产精品视频| 在线观看网站黄不卡| 91杏吧porn蝌蚪| 99精品欧美一区| 中文字幕av不卡在线| 黄色精品免费| 亚洲欧洲精品一区二区| 任你躁在线精品免费| 国产欧美中文字幕| av电影在线免费| 色综合亚洲精品激情狠狠| 亚洲色欧美另类| 欧美高清精品3d| 中文字幕在线看人| 亚洲人成网站影音先锋播放| 国产精品91av| 国模少妇一区二区三区| 国产免费成人在线| 欧美精品偷拍| 色综合影院在线观看| 牛牛精品成人免费视频| 91免费国产网站| 欧美一级鲁丝片| 久久人体大胆视频| 五月天婷婷社区| 亚洲精品一线二线三线| 一区二区www| 激情懂色av一区av二区av| 五月天色婷婷丁香| 国产欧美视频一区二区| 四虎精品一区二区| 国产一区亚洲一区| 国产九九在线视频| 欧美一级播放| 国产欧美高清在线| 在线看片成人| 中国一级大黄大黄大色毛片| 成人精品久久| 久久综合久久久| 四虎影视精品| 国产精品区一区二区三在线播放 | 欧美日韩在线播放三区| 成人免费视频毛片| 亚洲超碰97人人做人人爱| 69xx绿帽三人行| 亚洲综合一二区| 国产一区二区视频在线观看免费| 国产精品久久久99| 精品人妻中文无码av在线| 国产精品午夜在线| 青娱乐国产视频| 国产日本欧洲亚洲| 午夜精产品一区二区在线观看的| www亚洲一区| 日本xxxx裸体xxxx| 91色婷婷久久久久合中文| 日韩片在线观看| 99免费精品视频| 亚洲av成人精品一区二区三区 | 日韩av电影在线播放| 五月天av在线| 日韩av免费一区| 成人免费短视频| 日韩美女av在线免费观看| 成人一区视频| 91精品啪在线观看麻豆免费| 中文幕av一区二区三区佐山爱| 91精品久久久久久久久久入口| 忘忧草在线www成人影院| 国产精品热视频| 欧美日韩免费电影| 成人精品视频在线| 欧美成人免费全部网站| 91免费视频国产| 亚洲精选av| 精品中文字幕人| av成人男女| 日本一区二区免费看| 色综合五月天| 精品国产一区二区三区在线| 国产精品二区不卡| 青青青国产在线观看| 新狼窝色av性久久久久久| 黄色国产小视频| 九九在线精品视频| 成人性生活免费看| 久久久一区二区| 日韩精品久久久久久久的张开腿让 | 日韩av免费网站| 国产精品高潮久久| 国产精品区一区二区三在线播放| 欧美猛男同性videos| 免费看啪啪网站| 欧美亚洲自偷自偷| 欧美日韩理论片| av激情亚洲男人天堂| 国产午夜福利一区| 五月激情六月综合| 中文字幕第315页| 精品欧美黑人一区二区三区| 日本不卡免费播放| 欧美高清在线视频观看不卡| 芒果视频成人app| 91亚洲午夜在线| 欧美日韩爱爱| 人人妻人人澡人人爽欧美一区| 久久在线精品| 丰满人妻一区二区三区大胸 | 成人免费视频网站入口| 精品国产一区探花在线观看| 国产亚洲精品久久久久久久| 视频一区免费在线观看| 伦伦影院午夜理论片| 国产精品传媒视频| 日韩精品一区二区在线播放 | 国产精品97在线| 国产一区二区三区免费在线观看 | 国产欧美日韩一区二区三区在线观看| 三级全黄做爰视频| 91极品视觉盛宴| 三级在线电影| 久久久日本电影| 亚洲最大的免费视频网站| 国产女主播一区二区| 欧美午夜免费影院| 亚洲精品综合在线观看| 91香蕉视频黄| 五月天婷婷网站| 制服丝袜中文字幕一区| 国产在线视频资源| 久久久久中文字幕2018| 麻豆久久一区| 一区二区视频在线播放| 美女精品一区| 色欲av无码一区二区三区| 一区二区三区欧美日韩| 国产精品久久久久久久久毛片| 亚洲日韩欧美视频| 国模冰冰炮一区二区| 国产综合18久久久久久| 欧美fxxxxxx另类| 国产不卡的av| 综合自拍亚洲综合图不卡区| 精品一区二区无码| 日韩国产一区三区| 成人av三级| 欧美一区二区三区四区夜夜大片 | 亚洲 日本 欧美 中文幕| 亚洲第一区中文99精品| 草草影院在线| 成人欧美一区二区| 重囗味另类老妇506070| 日韩亚洲视频| 日本亚洲免费观看| 草草影院第一页| 欧美性xxxxx| 日本在线一二三| 国产精品久久久久久久午夜| 免费视频一区三区| www.浪潮av.com| 99久久伊人精品| 国产 日韩 欧美 在线| 亚洲精品国产欧美| 欧美成人a交片免费看| 亚洲视频导航| 国内精品伊人久久久久影院对白| 午夜精品久久久久99蜜桃最新版| 91精品国产综合久久久久久久久久| 中文字幕人妻互换av久久| 国产亚洲一区精品| 福利一区二区| 成人污网站在线观看| 国产成人午夜高潮毛片| 动漫精品一区一码二码三码四码| 欧美一二三在线| 深夜在线视频| 性欧美.com| 国产在线播精品第三| 日韩欧美不卡视频| 亚洲天堂男人天堂女人天堂| 国产成人精选| 你真棒插曲来救救我在线观看| av不卡在线播放| 中文人妻av久久人妻18| 中文字幕一区电影| 一区二区三区四区精品视频| 丰满少妇大力进入| 99久久免费视频.com| 亚洲一区中文字幕永久在线| 欧美成人激情图片网| 日韩精品一区二区三区中文| 激情综合在线观看| 国产精品久久久久四虎| 亚洲国产精品suv| 国产精品久久久久久久久久久久| 中文字幕乱码亚洲无线精品一区| 中文字幕人妻一区| 欧美日韩电影在线播放| 日本一级理论片在线大全| 欧美中日韩免费视频|