国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Java能抵擋住JavaScript的進(jìn)攻嗎?

開(kāi)發(fā) 后端
陛下有所不知,這JavaScript發(fā)展迅猛,不僅占領(lǐng)了前端,還通過(guò)Node.js向后端,尤其是我國(guó)滲透,臣還聽(tīng)說(shuō)他們用Electron開(kāi)始蠶食桌面開(kāi)發(fā)了!

JavaScript的進(jìn)攻

公元2014年,Java 第八代國(guó)王終于登上了王位。

第一次早朝,國(guó)王坐在高高的寶座上,看著畢恭畢敬的大臣,第一次體會(huì)到了皇權(quán)的威力。

德高望重的IO大臣顫悠悠地走上前來(lái):“啟稟陛下,昨日收到戰(zhàn)報(bào),有個(gè)叫做Node.js的番邦又一次向我國(guó)進(jìn)攻,我邊防將士死傷慘重。”

“Node.js? 那是什么東西?”  國(guó)王心中一樂(lè), 還真有人自不量力,想蚍蜉撼樹(shù)。 想我Java帝國(guó)人口之眾多,疆域之廣闊,踩死你小番邦還不像踩死一只螞蟻似的。

“那是用JavaScript寫的一個(gè)框架。”  IO大臣看到國(guó)王不知道Node.js,心里一沉。

“JavaScript?  愛(ài)卿說(shuō)笑了,一個(gè)在瀏覽器中運(yùn)行的東西,怎么可能進(jìn)攻我Java后端。”

“陛下有所不知,這JavaScript發(fā)展迅猛,不僅占領(lǐng)了前端,還通過(guò)Node.js向后端,尤其是我國(guó)滲透,臣還聽(tīng)說(shuō)他們用Electron開(kāi)始蠶食桌面開(kāi)發(fā)了!”

“竟有這等事!難道他們想通吃? 我們不是有Tomcat嗎? 派Tomcat去把Node.js給鎮(zhèn)壓了。”

國(guó)王開(kāi)始怨恨自己的父親JDK 7世和祖父JDK 6世沒(méi)把這個(gè)Node.js當(dāng)成一回事,沒(méi)有把Node.js給扼殺在搖籃之中,把這個(gè)禍害留給了自己,心里開(kāi)始發(fā)虛。

非阻塞異步IO

線程大臣走上前來(lái):“陛下,Tomcat已經(jīng)率軍和Node.js惡戰(zhàn)了幾日,敗下陣來(lái), 這Node.js有個(gè)獨(dú)門武器,叫做‘非阻塞異步IO’。”

“非阻塞? 我聽(tīng)說(shuō)我們的Tomcat也能實(shí)現(xiàn)非阻塞啊!”  王國(guó)有點(diǎn)驚訝。

“不行的,陛下,Tomcat在處理連接的時(shí)候能實(shí)現(xiàn)非阻塞,但是在真正處理請(qǐng)求的時(shí)候還是需要同步操作,一個(gè)請(qǐng)求對(duì)應(yīng)一個(gè)線程來(lái)處理,不像Node.js那樣,都是異步操作,只有一個(gè)主線程在忙活。”  線程大臣做了一個(gè)簡(jiǎn)明扼要的匯報(bào),不知道國(guó)王能否聽(tīng)懂。

(碼農(nóng)翻身老劉注: Node.js的故事請(qǐng)參見(jiàn)《Node.js: 我只需要一個(gè)店小二》)

“眾位愛(ài)卿,你們說(shuō)說(shuō)該怎么辦? 總不能讓這小小番邦屢次欺負(fù)我堂堂Java帝國(guó)吧。”

“臣倒是有一計(jì),” 集合大臣說(shuō)道,“這Node.js雖然來(lái)勢(shì)洶洶,但是它也有個(gè)致命的缺點(diǎn),那JavaScript是個(gè)動(dòng)態(tài)語(yǔ)言,無(wú)法進(jìn)行編譯時(shí)類型檢查,錯(cuò)誤只有等到運(yùn)行時(shí)才能暴露出來(lái)。用它開(kāi)發(fā)個(gè)小項(xiàng)目還可以,一旦項(xiàng)目變大,代碼變多,人員變多,那就會(huì)變成噩夢(mèng)了。”

“愛(ài)卿說(shuō)說(shuō)具體怎么辦?”

“我們可以派一些臥底去Node.js, 到處傳播這樣的消息,瓦解他們的軍心和士氣,讓他們認(rèn)為Node.js寫的系統(tǒng),很快就會(huì)腐化,最終還是要用我堂堂正正的Java語(yǔ)言來(lái)重寫。”

“嗯,此乃心理戰(zhàn)也,至少會(huì)穩(wěn)住一些墻頭草,準(zhǔn)奏,由愛(ài)卿來(lái)安排。 ” 國(guó)王說(shuō)道,“不過(guò),此法治標(biāo)不治本,還是得想辦法直接把他們打敗。”

“陛下真乃一代圣君,” 線程大臣馬上開(kāi)始拍馬屁,與此同時(shí),巧妙地把矛頭轉(zhuǎn)向老不死的IO大臣:“我Java帝國(guó)在第4代國(guó)王的時(shí)候就出現(xiàn)了非阻塞IO,這么多年過(guò)去了,居然還沒(méi)發(fā)展出類似Node.js的系統(tǒng),實(shí)在是不應(yīng)該啊。”

“老不死”的IO大臣是何等精明:“陛下明鑒, 我Java帝國(guó)應(yīng)用服務(wù)器一直以來(lái)都是Tomcat獨(dú)大,他們采用了線程池,每個(gè)請(qǐng)求一個(gè)線程的方式,我也不好干預(yù)。”

IO大臣把責(zé)任推得一干二凈。

“沒(méi)錯(cuò),” 集合大臣為IO大臣打抱不平,兩肋插刀,“還有一點(diǎn)就是這異步編程,聽(tīng)起來(lái)很好,但是寫起來(lái)可就要命了,那么多的回調(diào),簡(jiǎn)直就是反人類,臣民們戲稱為回調(diào)地獄,沒(méi)人愿意那么寫,發(fā)展不起來(lái)也很正常。”

線程大臣馬上接口:“此言差矣,陛下已經(jīng)教會(huì)了臣民們?nèi)绾问褂肔ambda表達(dá)式,并且現(xiàn)在也出現(xiàn)了RxJava,已經(jīng)沒(méi)什么回調(diào)地獄了!”

“那是現(xiàn)在,以前可沒(méi)有!”

“......”

國(guó)王看到這幾位大臣要打起來(lái),馬上施展和稀泥之術(shù):“眾位愛(ài)卿各有道理,你們且說(shuō)說(shuō),怎么才能打敗著來(lái)勢(shì)洶洶的Node.js吧。”

沒(méi)人說(shuō)話。

國(guó)王只好退朝。

京城酒館

京城的小酒館向來(lái)是一個(gè)多方消息的集散地。

一個(gè)金發(fā)碧眼的小伙子正在“危言聳聽(tīng)”:“聽(tīng)說(shuō)了沒(méi)有,Node.js又贏了幾仗,Tomcat大軍死傷慘重,有不少臣民都投奔到那個(gè)番邦去了。”

“這異步操作真的有這么厲害?” 有人問(wèn)道。

小伙子喝了一口酒: “其實(shí)不是異步操作更好,而是在高并發(fā)的環(huán)境異步操作更有效,大家都知道, 一個(gè)機(jī)器能支持的線程數(shù)目是有限的,不可能一直增加。Tomcat那種一個(gè)請(qǐng)求一個(gè)線程的方式很快就會(huì)遇到瓶頸。”

“你說(shuō)說(shuō),到底有什么好處?”有人刨根問(wèn)底。

“現(xiàn)在服務(wù)器端的操作無(wú)非就是操作文件,讀寫數(shù)據(jù)庫(kù),訪問(wèn)遠(yuǎn)程服務(wù),這些都是所謂阻塞操作。” 小伙子展開(kāi)了一張圖:

“橙色的都是IO操作,綠色的才是真正的線程執(zhí)行, IO操作非常耗時(shí),線程大部分時(shí)間都浪費(fèi)在了等待上面! 如果能讓線程不要等待,去做別的事情,那用少量的線程,甚至一個(gè)線程就可以了。”

眾人紛紛點(diǎn)頭, 這小伙子已經(jīng)看出了問(wèn)題的關(guān)鍵,現(xiàn)在的很多系統(tǒng),都是IO密集的, 高并發(fā)情況下,如果一個(gè)請(qǐng)求一個(gè)線程,浪費(fèi)巨大。

“想我Java 虛擬機(jī)如此強(qiáng)悍,如果能實(shí)現(xiàn)異步操作,那還不把Node.js秒成渣?!”小伙子狠狠地用手錘了一下桌子。

正在此時(shí),酒館沖進(jìn)一隊(duì)士兵,趕走眾人,圍住小伙子,領(lǐng)頭的喝問(wèn)到:“大膽刁民,竟然到處宣揚(yáng)異步思想,給我?guī)ё?”

士兵惡狠狠地把他五花大綁,推出門去, 留下一堆人在那里議論紛紛。

IO王府

“我讓你們把他請(qǐng)來(lái),怎么綁來(lái)了?快松綁!” IO大臣呵斥完下屬,轉(zhuǎn)頭親切地問(wèn)道:“叫什么名字啊?”

“小人蒂姆, Tomcat府上的幕僚。 ” 蒂姆一邊說(shuō)一邊揉肩膀。

“Tomcat府上的人......”  IO大臣捻著胡須若有所思。

“是的,大人,我還見(jiàn)過(guò)您呢,您上次半夜去Tomcat府上密談......”

“住口! ” IO大臣趕緊轉(zhuǎn)換話題, “我的下屬發(fā)現(xiàn)你到處宣揚(yáng)異步思想,究竟要干什么? ”

“小人發(fā)明了一個(gè)系統(tǒng),叫做Node.x。 ”

“為什么不獻(xiàn)于Tomcat 將軍?”

“唉,小人進(jìn)言多次,可是將軍不聽(tīng)啊!”

“你說(shuō)說(shuō)看,這是個(gè)什么東西?  是要模仿Node.js嗎?”  IO大臣問(wèn)道。

之前蒂姆給Tomcat將軍講述過(guò)Node.js, 他理都不理,經(jīng)常是一甩袖子就走, 自己是空有一身本領(lǐng)卻無(wú)人賞識(shí), 難道這IO大臣能幫自己一把? 想到此處,蒂姆精神大振。

“確實(shí)受到了它的啟發(fā), 但是我的Node.x在架構(gòu)和一些關(guān)鍵的抽象上和Node.js有很大不同。” 蒂姆不好意思地笑了笑,“先說(shuō)說(shuō)相同的部分,既然都是異步操作,那肯定是通過(guò)事件驅(qū)動(dòng)的,所以都有一個(gè)事件循環(huán)。”

IO大臣之前和Swing大臣聊過(guò), 知道事件循環(huán)是怎么回事,這是一個(gè)相當(dāng)古老的概念了。

無(wú)非就是有個(gè)線程在檢測(cè)一個(gè)隊(duì)列,如果隊(duì)列中有事件,就拿出來(lái)處理。

“只不過(guò)我這里有所不同,可以創(chuàng)建多個(gè)事件循環(huán)出來(lái),比如每一個(gè)CPU核心有一個(gè),這樣可以充分利用CPU的多核性能。”  蒂姆得意地說(shuō)道。

(4個(gè)CPU core, 4個(gè)事件循環(huán))

IO大臣點(diǎn)頭表示贊許, 他聽(tīng)說(shuō)Node.js好像只有一個(gè)主線程,沒(méi)法直接利用多核的能力。想利用多核的話還得開(kāi)多個(gè)進(jìn)程才行。

異步操作

“你圖中的那個(gè)Hanlder就是具體的業(yè)務(wù)代碼所在地吧? 具體長(zhǎng)什么樣子啊,讓我看看!”  IO大臣問(wèn)道。

蒂姆趕緊呈上代碼,這是簡(jiǎn)單的Hello World。 

  1. import io.vertx.core.AbstractVerticle;  
  2. public class Server extends AbstractVerticle {  
  3.   public void start() {  
  4.     vertx.createHttpServer().requestHandler(req -> {  
  5.       req.response()  
  6.         .putHeader("content-type", "text/plain")  
  7.         .end("Hello Word!");  
  8.     }).listen(8080);  
  9.   }  

這段代碼生成了一個(gè)簡(jiǎn)單的HTTP 服務(wù)器, 在8080端口監(jiān)聽(tīng), 每當(dāng)有請(qǐng)求來(lái)的時(shí)候,都返回一個(gè)字符串“Hello World!”。

IO大臣一看,大為吃驚:“你這代碼不需要外部容器,自己就搞了一個(gè)HTTP服務(wù)器啊?”

“是的,這樣我們就完全不用Tomcat了。 我把這種類起來(lái)一個(gè)名稱,叫做Verticle, 部署以后,這個(gè)Verticle就可以和一個(gè)事件循環(huán)關(guān)聯(lián)了。每次有HTTP請(qǐng)求過(guò)來(lái),Node.x會(huì)封裝成事件,然后分派給它處理了。”

真是個(gè)二愣子, IO大臣心想, 怪不得Tomcat對(duì)你不待見(jiàn),你這個(gè)東西出來(lái),他的位置不保啊!

IO大臣問(wèn)道:“那對(duì)于數(shù)據(jù)庫(kù)查詢,你這個(gè)Handler,哦不,Verticle該怎么寫? 查詢數(shù)據(jù)庫(kù)這么慢,豈不是把事件循環(huán)都阻塞了?什么事情都做不了了?”

“大人您忘了,我們這里操作必須都是異步的,查詢數(shù)據(jù)庫(kù)也不例外。”

蒂姆說(shuō)著展示了一段代碼, 通過(guò)異步的方式來(lái)查詢數(shù)據(jù)庫(kù)。 

  1. public class DatabaseVerticle extends AbstractVerticle{  
  2.     ......  
  3.     dbClient.getConnection(ar -> {  
  4.         if (ar.succeeded()) {  
  5.             SQLConnection connection = ar.result();  
  6.             connection.query("select .. from...", res -> {   
  7.                  if (res.succeeded()) {  
  8.                    ......  
  9.                  } else {  
  10.                    ......  
  11.                  }  
  12.           });  
  13.         } else {  
  14.            ......  
  15.         }  
  16.     });  

IO大臣感慨道:“唉,老了,真是不中用了,連異步都忘了。對(duì)了,這些個(gè)Verticle看起來(lái)都是獨(dú)立的,是被不同的線程調(diào)用的,他們之間怎么進(jìn)行交互啊?難道也通過(guò)共享內(nèi)存的方式?”

“大人真是厲害,一下子就問(wèn)到了核心問(wèn)題,不能讓他們共享內(nèi)存,那樣就需要加鎖了,我這里引入了Event Bus的方法,讓他們之間通過(guò)消息傳遞。”

“嗯,不錯(cuò),實(shí)現(xiàn)了低耦合。”

“不僅如此,這些Verticle還可以部署到不同的JVM中,通過(guò)Event Bus實(shí)現(xiàn)真正的分布式通信。” 蒂姆又拋出一個(gè)重磅炸彈。

“如此甚好!”  IO大臣愛(ài)才之心驟起, “你愿不愿意到老夫府上做幕僚啊?”

“小人愿意追隨大人!”

“好!明日早朝,你隨我入宮,面見(jiàn)圣上,老夫保你一世榮華富貴。 ”

為什么是Vert.x?

第二日早朝,IO大臣迫不及待地給國(guó)王報(bào)喜:“陛下,我Java 帝國(guó)也可以采用非阻塞異步編程了!擊敗Node.js之日可待。”

IO大臣講述了昨晚的情況, 細(xì)數(shù)了Node.x的種種好處。

Tomcat將軍臉上極為難看, 趕緊阻止:“陛下不可,我Java帝國(guó)采用同步處理已經(jīng)很久了,臣民們已經(jīng)習(xí)慣了,現(xiàn)在改成異步,怕激起民變。”

“愛(ài)卿不要低估臣民采用新技術(shù)的能力嘛, 宣蒂姆進(jìn)殿,呈上代碼。”

蒂姆都不敢看Tomcat, 從懷里掏出一張紙,雙手奉上。 

  1. vertx.createHttpServer()  
  2.   .requestHandler(function (req) {  
  3.     req.response()  
  4.       .putHeader("content-type", "text/plain")  
  5.       .end("Hello World");  
  6. }).listen(8080); 

國(guó)王盯著看了半天:“嗯?不對(duì)啊,你這不是Java代碼吧?”

Tomcat拿過(guò)國(guó)王遞過(guò)來(lái)的代碼,掃了一眼:““大膽! 你竟然敢在朝堂之上公然宣傳JavaScript,來(lái)人,拿下!”   

“陛下息怒,這是小人制定的一個(gè)策略,我的Node.x支持很多語(yǔ)言編程, 除了Java之外,還有JavaScript,Ruby, Scala, Kotlin等等。”

“哦? 是嗎? 這還能把番邦的人給吸引過(guò)來(lái)呢!你說(shuō)呢,Tomcat將軍?” 國(guó)王說(shuō)道。

Tomcat有些不自在,想找回場(chǎng)子:“嗯嗯,有一定道理,不過(guò)這個(gè)Node.x這個(gè)名字不好,拾人牙慧,讓人看低我堂堂Java帝國(guó)。” 

“Node是節(jié)點(diǎn)的意思,朕把他改成vertex如何?也是節(jié)點(diǎn)的意思。”

“ 陛下圣明,可否叫做vert.x ? ” IO大臣提議。

“好,準(zhǔn)奏,即日起,命你和蒂姆訓(xùn)練臣民使用vert.x,一個(gè)月后向Node.js開(kāi)戰(zhàn)!”  國(guó)王已經(jīng)忍N(yùn)ode.js很久了。

不,不能讓IO大臣的Vert.x一家獨(dú)大!  

國(guó)王突然想到了親爹留下來(lái)的祖訓(xùn), 帝王之術(shù)是一定要平衡朝局。 

“吩咐下去,今晚朕要和Spring將軍,嗯,還有線程大臣,共進(jìn)晚餐,朕有些事情要和他們好好談?wù)?.....” 

責(zé)任編輯:龐桂玉 來(lái)源: Java編程
相關(guān)推薦

2019-02-01 10:58:31

2011-03-22 17:11:13

JavaLAMP

2013-03-28 10:08:04

Amazon云計(jì)算IBM

2011-11-14 15:33:04

2018-01-31 13:48:43

2023-09-04 08:28:34

JavaScripforEach 循環(huán)

2019-12-17 15:18:52

網(wǎng)絡(luò)安全數(shù)據(jù)技術(shù)

2023-08-11 17:13:39

JavaScrip

2011-06-01 10:24:29

PlayBookBlackBerry

2010-06-21 10:09:47

Java

2020-12-03 06:21:06

Java指令重排序

2015-09-21 09:23:50

2011-08-22 20:38:12

2013-09-22 12:48:59

2010-09-01 15:30:46

2013-05-09 10:02:13

Unix服務(wù)器x86

2016-12-05 17:24:50

2020-10-08 14:20:16

5G運(yùn)營(yíng)商技術(shù)

2024-01-16 16:39:33

2015-08-07 10:06:26

加班編程熱情
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

欧美一区二区三区日韩| 国产精品二区三区| 免费黄色网页在线观看| 国产精品三级电影| 日本在线视频www| 国产成人在线看| 一区一区视频| 老司机精品视频网站| 99视频在线免费观看| 成人系列视频| 欧美最猛性xxxxx免费| 四虎国产精品成人免费影视| 日韩精品免费在线| www555久久| 69p69国产精品| 国产调教视频在线观看| 欧美日韩五月天| 97电影在线看视频| 在线精品亚洲一区二区不卡| 牛牛影视精品影视| 欧美性视频一区二区三区| 男人天堂网在线| 欧美丝袜自拍制服另类| av亚洲在线| 日韩欧美综合在线| 国产一二三在线| 社区色欧美激情 | 羞羞视频在线观看一区二区| 久久精品中文字幕免费mv| 国产精品一区二区三区www| 欧美国产日本高清在线 | 中文字幕在线影视资源| 亚洲美女淫视频| 日本我和搜子同居的日子高清在线| 亚洲欧美日韩一区二区 | av网址在线| 亚洲精品按摩视频| 国产精品99| 九色精品免费永久在线| 欧美中文一区| 亚洲最大激情中文字幕| 免费视频一区二区三区在线观看| 正在播放91九色| 久久久精品日韩欧美| 日韩xxxx视频| 美女黄色片网站| 激情国产一区二区| 国产a级黄色大片| 国产精品亚洲人在线观看| 男人和女人啪啪网站| 国产精品对白交换视频| 日本一级在线观看| 精品国产一区久久| 91九色综合| 欧美在线视频观看| 欧美激情aⅴ一区二区三区| 久久影视中文粉嫩av| 国产风韵犹存在线视精品| www.99av.com| 懂色av影视一区二区三区| a级影片在线观看| 久久久国产精品一区| 小处雏高清一区二区三区| 日韩国产精品一区二区| 99国产一区二区三精品乱码| 簧片在线免费看| 欧美三级日韩三级| 日韩av黄色| 亚洲自拍av在线| 国产精品自在在线| 中文字幕在线网| 日韩精品在线影院| 日本欧美视频| 91免费版看片| 性久久久久久久久| 操人在线观看| 国产自摸综合网| 成人精品亚洲人成在线| 欧美xx网站| 精品亚洲精品福利线在观看| 色综合久久中文| 青青草原成人| 亚洲精品国产a| 国产美女高潮在线| 成人在线免费观看视视频| 成人午夜激情影院| www亚洲人| 日本视频久久久| 国产精品综合一区二区| 日本一二三区在线视频| www.亚洲天堂| 久久久久久久尹人综合网亚洲| 二区视频在线| 在线观看日韩av| 亚洲精选一区| 五月天丁香婷| 欧美精品免费在线观看| 视频在线在亚洲| 两个人hd高清在线观看| 中日韩美女免费视频网站在线观看| 综合久久亚洲| xxav视频| 日韩在线视频一区| 秋霞电影网一区二区| 日韩欧美在线观看一区二区| 久久久久国色av免费观看性色| 精品一区二区在线免费观看| 在线免费观看色| 538国产精品一区二区在线| 成人丝袜18视频在线观看| 麻豆视频免费在线观看| 国产精品久久久久久搜索| jiyouzz国产精品久久| 色黄网站在线观看| 国产免费一区| 在线观看亚洲专区| 女人香蕉久久**毛片精品| 亚洲一本大道| 日本精品久久久| 中文字幕视频一区二区三区久| 最新亚洲国产| av7777777| 麻豆乱码国产一区二区三区| 国精产品一区一区三区mba桃花 | 亚洲一二在线观看| 视频一区二区不卡| 欧美私人网站| 国产精品亚洲综合| 色呦呦一区二区三区| 成人情趣视频| 宅男深夜国产| 国产精品永久在线| 午夜在线成人av| 97精品视频| 你懂的视频在线| 91黄在线观看| 欧美在线一区二区| 亚洲日本视频| 色的视频在线免费看| 国产嫩草一区二区三区在线观看| 欧美视频不卡中文| 综合视频在线| 午夜免费福利在线观看| 精品国产乱码一区二区三区四区 | 免费yellow网站| 91成人在线视频| 亚洲综合久久久久| 97精品国产一区二区三区| 北岛玲一区二区三区| 日韩欧美电影一区二区| 亚洲美腿欧美激情另类| 高清视频一区二区| 亚洲精品v亚洲精品v日韩精品| 成人女性文胸| 成人福利视频网| 欧美综合一区二区| 青娱乐精品视频在线| 色豆豆成人网| 激情综合网俺也去| 国产精品日韩欧美大师| 欧美日韩一区久久| 麻豆精品视频在线观看免费| www.51av欧美视频| 成年人在线看片| 国产精品视频久久久久| 欧美一区二区三区人| 成人黄色网址在线观看| 国产不卡一二三区| 羞羞的视频在线观看| 国产一区视频免费观看| 国产精品视频专区| 精品美女在线观看| 国产精品久久午夜夜伦鲁鲁| 欧美午夜在线视频| 日韩网站中文字幕| 992tv在线| 四虎一区二区| 2019中文字幕在线免费观看| 欧美无乱码久久久免费午夜一区| 毛片av一区二区三区| 成人直播在线观看| 老司机精品影院| 高清一区二区视频| 就去色蜜桃综合| 久久久免费av| 日韩午夜激情视频| 亚洲色图在线看| 日韩高清在线观看| 欧美一区自拍| caoprom在线| 91青娱乐在线视频| 白白操在线视频| 国产美女直播视频一区| 亚洲免费成人av电影| 亚洲一区二区三区四区在线观看 | 99久久国产综合精品色伊| 欧美电影免费| 精品成人av| porn亚洲| 羞羞小视频视频|