色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

軟件開發(fā)工程師的進(jìn)階之路

工程師人生 ? 來源:工程師吳畏 ? 2019-07-02 17:27 ? 次閱讀

服務(wù)器方面:

1、web服務(wù)器nginx和apache的對(duì)比分析

①nginx相對(duì)于apache的優(yōu)點(diǎn):

輕量級(jí),同樣起web 服務(wù),比apache 占用更少的內(nèi)存及資源 ,抗并發(fā),nginx 處理請(qǐng)求是異步非阻塞的,而apache 則是阻塞型的,在高并發(fā)下nginx 能保持低資源低消耗高性能,高度模塊化的設(shè)計(jì),編寫模塊相對(duì)簡(jiǎn)單。

apache相對(duì)于nginx 的優(yōu)點(diǎn):A.rewrite ,比nginx 的rewrite 強(qiáng)大;B.動(dòng)態(tài)頁面,模塊超多,基本想到的都可以找到;C.少bug ,nginx 的bug 相對(duì)較多;D.超穩(wěn)定。

一般來說,需要性能的web 服務(wù),用nginx 。如果不需要性能只求穩(wěn)定,那就apache.

②作為 Web 服務(wù)器:相比 Apache,Nginx 使用更少的資源,支持更多的并發(fā)連接,體現(xiàn)更高的效率。Nginx采用C進(jìn)行編寫, 不論是系統(tǒng)資源開銷還是CPU使用效率都比 Perlbal 要好很多。

③Nginx 配置簡(jiǎn)潔,Apache 復(fù)雜。Nginx 靜態(tài)處理性能比 Apache 高 3倍以上,Apache 對(duì) PHP 支持比較簡(jiǎn)單,Nginx 需要配合其他后端用。Apache 的組件比 Nginx 多,現(xiàn)在 Nginx 才是Web 服務(wù)器的首選。

④最核心的區(qū)別在于apache是同步多進(jìn)程模型,一個(gè)連接對(duì)應(yīng)一個(gè)進(jìn)程;nginx是異步的,多個(gè)連接(萬級(jí)別)可以對(duì)應(yīng)一個(gè)進(jìn)程。

⑤nginx處理靜態(tài)文件好,耗費(fèi)內(nèi)存少。但無疑apache仍然是目前的主流,有很多豐富的特性。所以還需要搭配著來。當(dāng)然如果能確定nginx就適合需求,那么使用nginx會(huì)是更經(jīng)濟(jì)的方式。

⑥nginx處理動(dòng)態(tài)請(qǐng)求是雞肋,一般動(dòng)態(tài)請(qǐng)求要apache去做,nginx只適合靜態(tài)和反向。

⑦Nginx優(yōu)于apache的主要兩點(diǎn):A.Nginx本身就是一個(gè)反向代理服務(wù)器 B.Nginx支持7層負(fù)載均衡;其他的當(dāng)然,Nginx可能會(huì)比 apache支持更高的并發(fā)。

數(shù)據(jù)庫(kù)方面:

1、數(shù)據(jù)庫(kù)優(yōu)化:

①方法:MySQL可以建分表,讀寫分離,建索引,一般經(jīng)常更新的字段不適合建索引,建索引會(huì)降低數(shù)據(jù)非查詢操作的效率。主鍵是一種特殊的索引。

②導(dǎo)致索引失效的情況:

A、如果條件中有or,即使其中有條件帶索引也不會(huì)使用到。

B、對(duì)于多列索引,不是使用的第一部分,則不會(huì)使用索引。

C、like查詢是以%開頭,而不是以%結(jié)尾的。

D、如果索引列類型是字符串,一定要在條件中將數(shù)據(jù)使用引號(hào)引用起來,否則不使用索引。

E、如果mysql估計(jì)使用全表掃描要比使用索引快,則不使用索引。

2、MySQL引擎的種類和區(qū)別

①種類:MyISAM、InnoDB、MEMORY、MERGE、Archive、Blackhole、CSV、Federate、Merge、NDB集群引擎,第三方引擎:OLTP類引擎、面向列的存儲(chǔ)引擎、社區(qū)存儲(chǔ)引擎。

②區(qū)別:

A、MyISAM是MySQL5.1及之前的默認(rèn)存儲(chǔ)引擎。MyISAM不支持事務(wù)、也不支持外鍵,但其訪問速度快,對(duì)事務(wù)完整性沒有要求。MyISAM表還支持3中不同的存儲(chǔ)格式:

1 靜態(tài)表

2 動(dòng)態(tài)表

3 壓縮表

B、InnoDB存儲(chǔ)引擎提供了具有提交、回滾和崩潰恢復(fù)能力的事務(wù)安全。但是比起MyISAM存儲(chǔ)引擎,InnoDB寫的處理效率差一些并且會(huì)占用更多的磁盤空間以保留數(shù)據(jù)和索引。 InnoDB存儲(chǔ)方式為兩種:1 使用共享表空間存儲(chǔ) 2 使用多表空間

C、MEMORY存儲(chǔ)引擎使用存在內(nèi)存中的內(nèi)容來創(chuàng)建表。每個(gè)MEMORY表只實(shí)際對(duì)應(yīng)一個(gè)磁盤文件。MEMORY類型的表訪問非常得快,因?yàn)樗臄?shù)據(jù)是放在內(nèi)存中的,并且默認(rèn)使用HASH索引。但是一旦服務(wù)關(guān)閉,表中的數(shù)據(jù)就會(huì)丟失掉。

D、MERGE存儲(chǔ)引擎是一組MyISAM表的組合,這些MyISAM表必須結(jié)構(gòu)完全相同。MERGE表本身沒有數(shù)據(jù),對(duì)MERGE類型的表進(jìn)行查詢、更新、刪除的操作,就是對(duì)內(nèi)部的MyISAM表進(jìn)行的。

3、數(shù)據(jù)庫(kù)事務(wù)

(1)四個(gè)特性:ACID,原子性,一致性,隔離性,持久性。

(2)四個(gè)隔離級(jí)別:

Read Uncommitted(讀取未提交內(nèi)容)

在該隔離級(jí)別,所有事務(wù)都可以看到其他未提交事務(wù)的執(zhí)行結(jié)果。本隔離級(jí)別很少用于實(shí)際應(yīng)用,因?yàn)樗男阅芤膊槐绕渌?jí)別好多少。讀取未提交的數(shù)據(jù),也被稱之為臟讀(Dirty Read)。

Read Committed(讀取提交內(nèi)容)

這是大多數(shù)數(shù)據(jù)庫(kù)系統(tǒng)的默認(rèn)隔離級(jí)別(但不是MySQL默認(rèn)的)。它滿足了隔離的簡(jiǎn)單定義:一個(gè)事務(wù)只能看見已經(jīng)提交事務(wù)所做的改變。這種隔離級(jí)別 也支持所謂的不可重復(fù)讀(Nonrepeatable Read),因?yàn)橥皇聞?wù)的其他實(shí)例在該實(shí)例處理其間可能會(huì)有新的commit,所以同一select可能返回不同結(jié)果。

Repeatable Read(可重讀)

這是MySQL的默認(rèn)事務(wù)隔離級(jí)別,它確保同一事務(wù)的多個(gè)實(shí)例在并發(fā)讀取數(shù)據(jù)時(shí),會(huì)看到同樣的數(shù)據(jù)行。不過理論上,這會(huì)導(dǎo)致另一個(gè)棘手的問題:幻讀 (Phantom Read)。簡(jiǎn)單的說,幻讀指當(dāng)用戶讀取某一范圍的數(shù)據(jù)行時(shí),另一個(gè)事務(wù)又在該范圍內(nèi)插入了新行,當(dāng)用戶再讀取該范圍的數(shù)據(jù)行時(shí),會(huì)發(fā)現(xiàn)有新的“幻影” 行。InnoDB和Falcon存儲(chǔ)引擎通過多版本并發(fā)控制(MVCC,Multiversion Concurrency Control)機(jī)制解決了該問題。

Serializable(可串行化)

這是最高的隔離級(jí)別,它通過強(qiáng)制事務(wù)排序,使之不可能相互沖突,從而解決幻讀問題。簡(jiǎn)言之,它是在每個(gè)讀的數(shù)據(jù)行上加上共享鎖。在這個(gè)級(jí)別,可能導(dǎo)致大量的超時(shí)現(xiàn)象和鎖競(jìng)爭(zhēng)。

這四種隔離級(jí)別采取不同的鎖類型來實(shí)現(xiàn),若讀取的是同一個(gè)數(shù)據(jù)的話,就容易發(fā)生問題。例如:

i. 臟讀(Drity Read):某個(gè)事務(wù)已更新一份數(shù)據(jù),另一個(gè)事務(wù)在此時(shí)讀取了同一份數(shù)據(jù),由于某些原因,前一個(gè)RollBack了操作,則后一個(gè)事務(wù)所讀取的數(shù)據(jù)就會(huì)是不正確的。

ii. 不可重復(fù)讀(Non-repeatable read):在一個(gè)事務(wù)的兩次查詢之中數(shù)據(jù)不一致,這可能是兩次查詢過程中間插入了一個(gè)事務(wù)更新的原有的數(shù)據(jù)。

iii. 幻讀(Phantom Read):在一個(gè)事務(wù)的兩次查詢中數(shù)據(jù)筆數(shù)不一致,例如有一個(gè)事務(wù)查詢了幾列(Row)數(shù)據(jù),而另一個(gè)事務(wù)卻在此時(shí)插入了新的幾列數(shù)據(jù),先前的事務(wù)在接下來的查詢中,就會(huì)發(fā)現(xiàn)有幾列數(shù)據(jù)是它先前所沒有的。

(3)一致性處理:

A、開啟事務(wù)。B、申請(qǐng)寫權(quán)限,也就是給對(duì)象(表或記錄)加鎖。C、假如失敗,則結(jié)束事務(wù),過一會(huì)重試。D、假如成功,也就是給對(duì)象加鎖成功,防止其他用戶再用同樣的方式打開。E、進(jìn)行編輯操作。F、寫入所進(jìn)行的編輯結(jié)果。G、假如寫入成功,則提交事務(wù),完成操作。 H、假如寫入失敗,則回滾事務(wù),取消提交。I、(G、H)兩步操作已釋放了鎖定的對(duì)象,恢復(fù)到操作前的狀態(tài)。

(4)基于事務(wù)的數(shù)據(jù)庫(kù)引擎的選型:如果考慮到事務(wù),推薦選用MySQL INNODB引擎;如果考慮速度,建議考慮MySQL MyISAM引擎,并且需要在代碼層面做比較復(fù)雜的處理,如通過多線程、異步、非阻塞等方式對(duì)數(shù)據(jù)庫(kù)進(jìn)行清理,同時(shí)需要信號(hào)量、欄柵、數(shù)據(jù)庫(kù)標(biāo)志位等工具保證數(shù)據(jù)一致性。

4、海量數(shù)據(jù)處理

(1)數(shù)據(jù)庫(kù)擴(kuò)展:

①縱向擴(kuò)展:基于業(yè)務(wù)的高度隔離性和數(shù)據(jù)的安全性,對(duì)業(yè)務(wù)和數(shù)據(jù)進(jìn)行合理的切分,進(jìn)行主-備機(jī)分離,主-主同步,主-從同步(對(duì)于MySQL數(shù)據(jù)庫(kù)是單向異步同步機(jī)制),主-從熱備等操作。

②橫向擴(kuò)展:對(duì)數(shù)據(jù)表進(jìn)行橫向切分,按一定的規(guī)則(hash取模分、user_id尾數(shù)、自定義算法等)對(duì)數(shù)據(jù)表進(jìn)行橫向切分。

關(guān)于數(shù)據(jù)庫(kù)架構(gòu)和擴(kuò)展方面的文章請(qǐng)見:Mysql在大型網(wǎng)站的應(yīng)用架構(gòu)演變。

(2)分布式數(shù)據(jù)方案:

①提供分庫(kù)規(guī)則和路由規(guī)則(RouteRule簡(jiǎn)稱RR),將上面的說明中提到的三中切分規(guī)則直接內(nèi)嵌入本系統(tǒng),具體的嵌入方式在接下來的內(nèi)容中進(jìn)行詳細(xì)的說明和論述;

②引入集群(Group)的概念,保證數(shù)據(jù)的高可用性;

③引入負(fù)載均衡策略(LoadBalancePolicy簡(jiǎn)稱LB);

④引入集群節(jié)點(diǎn)可用性探測(cè)機(jī)制,對(duì)單點(diǎn)機(jī)器的可用性進(jìn)行定時(shí)的偵測(cè),以保證LB策略的正確實(shí)施,以確保系統(tǒng)的高度穩(wěn)定性;

⑤引入讀/寫分離,提高數(shù)據(jù)的查詢速度。

具體描述請(qǐng)參見博文:MySQL 海量數(shù)據(jù)的存儲(chǔ)和訪問解決方案。

(3)數(shù)據(jù)庫(kù)切分策略介紹,請(qǐng)見博文:數(shù)據(jù)庫(kù)Sharding的基本思想和切分策略。

(4)隨著數(shù)據(jù)量隨著業(yè)務(wù)的發(fā)展不斷增大,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)RDB已經(jīng)無法滿足需要,這時(shí)需要引入新的海量數(shù)據(jù)處理解決方案:Apache HBase。

框架方面:

Spring原理(建議讀一下框架核心源碼)

①IoC(Inversion of control): 控制反轉(zhuǎn),依賴注入

1)IoC:

概念:控制權(quán)由對(duì)象本身轉(zhuǎn)向容器;由容器根據(jù)配置文件去創(chuàng)建實(shí)例并創(chuàng)建各個(gè)實(shí)例之間的依賴關(guān)系

2)依賴IoC容器負(fù)責(zé)管理bean,有兩種,一種是BeanFactory,另一種是ApplicationContext,但是ApplicationContext繼承與BeanFactory。

核心:bean工廠;在Spring中,bean工廠創(chuàng)建的各個(gè)實(shí)例稱作bean

②AOP(Aspect-Oriented Programming): 面向方面編程

1)代理的兩種方式:

靜態(tài)代理:

? 針對(duì)每個(gè)具體類分別編寫代理類;

? 針對(duì)一個(gè)接口編寫一個(gè)代理類;

動(dòng)態(tài)代理:

針對(duì)一個(gè)方面編寫一個(gè)InvocationHandler,然后借用JDK反射包中的Proxy類為各種接口動(dòng)態(tài)生成相應(yīng)的代理類

2) AOP的主要原理:動(dòng)態(tài)代理

實(shí)現(xiàn):有兩種:JDK Proxy和Cglib,Spring規(guī)定對(duì)于有接口的類用JDK Proxy,對(duì)于無接口和抽象類用Cglib,雖然Cglib均可以代理,但是Cglib復(fù)雜,效率低。但是Cglib有例外,就是代理的類中不能是final修飾的類或者類中有final方法。

3、Spring、Struts2、Servlet對(duì)比

①Servlet原理:Tomcat 的容器等級(jí)中,Context 容器是直接管理 Servlet 在容器中的包裝類 Wrapper,所以 Context 容器如何運(yùn)行將直接影響 Servlet 的工作方式。

A、Servlet生命周期詳解

Servlet的生命周期可以分為四個(gè)階段,即裝載類及創(chuàng)建實(shí)例階段、初始化階段、服務(wù)階段和實(shí)例銷毀階段。下面針對(duì)每個(gè)階段的編程任務(wù)及注意事項(xiàng)進(jìn)行詳細(xì)的說明。

B、Servlet創(chuàng)建過程

在默認(rèn)情況下Servlet實(shí)例是在第一個(gè)請(qǐng)求到來的時(shí)候創(chuàng)建,以后復(fù)用。一旦Servlet實(shí)例被創(chuàng)建,Web服務(wù)器會(huì)自動(dòng)調(diào)用init(ServletConfig config)方法來初始化該Servlet。其中方法參數(shù)config中包含了Servlet的配置信息,比如初始化參數(shù),該對(duì)象由服務(wù)器創(chuàng)建。init方法在Servlet生命周期中只執(zhí)行一次,而且該方法執(zhí)行在單線程的環(huán)境下,因此開發(fā)者不用考慮線程安全的問題。

C、服務(wù)

一旦Servlet實(shí)例成功創(chuàng)建及初始化,該Servlet實(shí)例就可以被服務(wù)器用來服務(wù)于客戶端的請(qǐng)求并生成響應(yīng)。在服務(wù)階段Web服務(wù)器會(huì)調(diào)用該實(shí)例的service(ServletRequest request,ServletResponse response)方法,request對(duì)象和response對(duì)象有服務(wù)器創(chuàng)建并傳給Servlet實(shí)例。request對(duì)象封裝了客戶端發(fā)往服務(wù)器端的信息,response對(duì)象封裝了服務(wù)器發(fā)往客戶端的信息。

為了提高效率,Servlet規(guī)范要求一個(gè)Servlet實(shí)例必須能夠同時(shí)服務(wù)于多個(gè)客戶端請(qǐng)求,即service()方法運(yùn)行在多線程的環(huán)境下,Servlet開發(fā)者必須保證該方法的線程安全性。

Serlvet接口只定義了一個(gè)服務(wù)方法就是service,而HttpServlet類實(shí)現(xiàn)了該方法并且要求調(diào)用下列的方法之一:

doGet:處理GET請(qǐng)求

doPost:處理POST請(qǐng)求

當(dāng)發(fā)出客戶端請(qǐng)求的時(shí)候,調(diào)用service 方法并傳遞一個(gè)請(qǐng)求和響應(yīng)對(duì)象。Servlet首先判斷該請(qǐng)求是GET 操作還是POST 操作。然后它調(diào)用下面的一個(gè)方法:doGet 或 doPost。如果請(qǐng)求是GET就調(diào)用doGet方法,如果請(qǐng)求是POST就調(diào)用doPost方法。

②對(duì)比:Spring主要有IoC和AOP,Spring中IoC管理的bean為單例模式的,可以配置成原型模式。如果用Spring管理struts2的bean,必須要設(shè)置成原型模式,因?yàn)閟truts2封裝來了servlet,隔離了servlet的特性,Action不同于Spring,已經(jīng)是原型模式了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開發(fā)工程師
    +關(guān)注

    關(guān)注

    1

    文章

    91

    瀏覽量

    14939
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    我國(guó)軟件開發(fā)者數(shù)量突破940萬

    。目前,開源已覆蓋軟件開發(fā)的所有場(chǎng)景,全球97%的軟件開發(fā)者和99%的企業(yè)使用開源軟件。 工業(yè)和信息化部總工程師 謝少鋒:我國(guó)已經(jīng)成為全球開源參與者數(shù)量排名第二,增長(zhǎng)速度最快的國(guó)家,開
    的頭像 發(fā)表于 12-24 13:52 ?132次閱讀

    嵌入式工程師常用的開發(fā)工具有哪些?

    仿真器可以模擬復(fù)雜的微控制器和外設(shè),幫助工程師在早期階段進(jìn)行軟件開發(fā)和調(diào)試。這大大縮短了開發(fā)周期,降低了開發(fā)成本。 總之,嵌入式工程師需要
    發(fā)表于 12-20 15:29

    @視覺工程師丨15分鐘上手《AIDI3.2腳本開發(fā)教程》視頻,請(qǐng)查收!

    AIDI有什么系統(tǒng)性地進(jìn)階開發(fā)教程?AIDI調(diào)用Python腳本的基本原理是什么?常見的Python異常如何處理?區(qū)域計(jì)算工具有哪些常用案例?……為幫助廣大視覺工程師開發(fā)者更好地掌握
    的頭像 發(fā)表于 11-09 01:06 ?257次閱讀
    @視覺<b class='flag-5'>工程師</b>丨15分鐘上手《AIDI3.2腳本<b class='flag-5'>開發(fā)</b>教程》視頻,請(qǐng)查收!

    ECU電控軟件開發(fā)及測(cè)試介紹

    本文重點(diǎn)介紹符合AutoSar架構(gòu)的應(yīng)用軟件開發(fā)、MBD開發(fā)模式下的軟件質(zhì)量評(píng)估與優(yōu)化方案、復(fù)雜場(chǎng)景下的ECU性能壓力測(cè)試方案。
    的頭像 發(fā)表于 09-26 14:25 ?3418次閱讀
    ECU電控<b class='flag-5'>軟件開發(fā)</b>及測(cè)試介紹

    求LORA技術(shù)開發(fā)工程師合作

    求LORA技術(shù)開發(fā)工程師合作
    發(fā)表于 09-02 10:21

    嵌入式軟件開發(fā)招聘

    本帖最后由 jf_19082533 于 2024-7-26 13:56 編輯 尋求:嵌入式軟件工程師 要求:3年以上開發(fā)經(jīng)驗(yàn),音視頻領(lǐng)域應(yīng)用層開發(fā) 地址:北京市昌平區(qū) 郵箱:1017933921@qq.com 歡迎廣大感興
    發(fā)表于 07-26 13:44

    【《軟件開發(fā)珠璣》閱讀體驗(yàn)】+ 心得

    ,《軟件開發(fā)珠璣》是一本值得每個(gè)軟件開發(fā)者閱讀的書籍。它教會(huì)了我們?nèi)绾瘟私庑枨蟆⒃O(shè)計(jì)、項(xiàng)目管理,如何與團(tuán)隊(duì)合作以及如何持續(xù)學(xué)習(xí)和進(jìn)步。在未來的軟件開發(fā)生涯中,我將繼續(xù)秉承書中的理念,努力成為一名項(xiàng)目的
    發(fā)表于 06-23 17:56

    找STM32硬件開發(fā)兼職工程師

    上海做傳感器的公司,找STM32硬件開發(fā)兼職工程師,會(huì)硬件開發(fā),嵌入式軟件開發(fā),可項(xiàng)目外包。有意聯(lián)系:15900460170
    發(fā)表于 06-22 19:12

    嵌入式軟件工程師如何提升自己?

    的發(fā)展打下堅(jiān)實(shí)的基礎(chǔ)。 2.掌握專業(yè)技能 除了基礎(chǔ)知識(shí)外,嵌入式軟件工程師還需要掌握專業(yè)的技能。這包括熟練掌握嵌入式系統(tǒng)的開發(fā)工具、硬件平臺(tái)和軟件開發(fā)流程。建議通過參加培訓(xùn)課程、實(shí)習(xí)經(jīng)驗(yàn)或自學(xué)等方式
    發(fā)表于 06-12 11:20

    嵌入式軟件工程師和硬件工程師的區(qū)別?

    嵌入式軟件工程師和硬件工程師的區(qū)別? 嵌入式軟件工程師 嵌入式軟件工程師軟件開發(fā)領(lǐng)域中的一種專業(yè)工程師
    發(fā)表于 05-16 11:00

    大廠電子工程師常見面試題#電子工程師 #硬件工程師 #電路知識(shí) #面試題

    電子工程師電路
    安泰小課堂
    發(fā)布于 :2024年04月30日 17:33:15

    一位硬件工程師的歷練之路:從入門學(xué)習(xí)理論到... #搞笑 #硬件工程師 #電子工程師 #揚(yáng)興科技

    硬件工程師揚(yáng)興科技
    揚(yáng)興科技
    發(fā)布于 :2024年03月13日 17:50:21

    嵌入式軟件開發(fā)軟件開發(fā)的區(qū)別

    嵌入式軟件開發(fā)軟件開發(fā)是兩個(gè)不同的概念,它們?cè)谝恍╆P(guān)鍵方面有著明顯的區(qū)別。嵌入式軟件開發(fā)是指開發(fā)嵌入在硬件設(shè)備中的軟件,而
    的頭像 發(fā)表于 01-22 15:27 ?2328次閱讀
    主站蜘蛛池模板: 欧美精品色视频| 亚洲第一区欧美日韩精品| 毛片手机在线| 免费99精品国产自在现线| 奶大B紧17p| 色女仆影院| 亚洲AV蜜桃永久无码精品无码网| 亚洲人成网77777色在线播放| 中文字幕欧美一区| beeg日本老师| 国产成人久久AV免费看澳门| 国产亚洲精品首页在线播放| 久久99热狠狠色一区二区| 嫩草影院精品视频在线观看| 日韩精品一区二区三区色欲AV| 偷拍亚洲色自拍| 一二三四在线视频社区| 99久久综合国产精品免费| 福利视频一二三在线观看| 国精产品一区二区三区| 榴莲推广APP网站入口官网| 日本不卡免免费观看| 亚州综合网| 最近中文字幕MV高清在线视频| YY8090福利午夜理论片| 国产午夜一级鲁丝片| 麻豆国产96在线日韩麻豆| 日本乱hd高清videos| 亚洲精品中文字幕无码A片蜜桃| 91视频夜色| 国产乱码精品AAAAAAAA| 久久综合给会久久狠狠狠 | 中文天堂www资源| 初中XXXXXL| 久久精品WWW人人爽人人| 秋霞网站一级一片| 亚洲一区乱码电影在线| 扒开女生尿口| 极品美女穴| 日本xxxx96| 影音先锋色小姐|