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

網(wǎng)站架構方案全解析

運維 系統(tǒng)運維
本文是作者對網(wǎng)站架構進行分析后,在頁面靜態(tài)化,圖片服務器分離,負載均衡等方面做出的全面解析。作者在每一個部分都做出了簡短的分析,并附上了相關實例分析.

 1、HTML靜態(tài)化其實大家都知道,效率最高、消耗最小的就是純靜態(tài)化的html頁面,所以我們盡可能使我們的網(wǎng)站上的頁面采用靜態(tài)頁面來實現(xiàn),這個最簡單的方法其實也是最有效的方法。但是對于大量內(nèi)容并且頻繁更新的網(wǎng)站,我們無法全部手動去挨個實現(xiàn),于是出現(xiàn)了我們常見的信息發(fā)布系統(tǒng)CMS,像我們常訪問的各個門戶站點的新聞頻道,甚至他們的其他頻道,都是通過信息發(fā)布系統(tǒng)來管理和實現(xiàn)的,信息發(fā)布系統(tǒng)可以實現(xiàn)最簡單的信息錄入自動生成靜態(tài)頁面,還能具備頻道管理、權限管理、自動抓取等功能,對于一個大型網(wǎng)站來說,擁有一套高效、可管理的CMS是必不可少的。除了門戶和信息發(fā)布類型的網(wǎng)站,對于交互性要求很高的社區(qū)類型網(wǎng)站來說,盡可能的靜態(tài)化也是提高性能的必要手段,將社區(qū)內(nèi)的帖子、文章進行實時的靜態(tài)化,有更新的時候再重新靜態(tài)化也是大量使用的策略,像Mop的大雜燴就是使用了這樣的策略,網(wǎng)易社區(qū)等也是如此。同時,html靜態(tài)化也是某些緩存策略使用的手段,對于系統(tǒng)中頻繁使用數(shù)據(jù)庫查詢但是內(nèi)容更新很小的應用,可以考慮使用html靜態(tài)化來實現(xiàn),比如論壇中論壇的公用設置信息,這些信息目前的主流論壇都可以進行后臺管理并且存儲再數(shù)據(jù)庫中,這些信息其實大量被前臺程序調(diào)用,但是更新頻率很小,可以考慮將這部分內(nèi)容進行后臺更新的時候進行靜態(tài)化,這樣避免了大量的數(shù)據(jù)庫訪問請求。

2、圖片服務器分離大家知道,對于Web服務器來說,不管是Apache、IIS還是其他容器,圖片是最消耗資源的,于是我們有必要將圖片與頁面進行分離,這是基本上大型網(wǎng)站都會采用的策略,他們都有獨立的圖片服務器,甚至很多臺圖片服務器。這樣的架構可以降低提供頁面訪問請求的服務器系統(tǒng)壓力,并且可以保證系統(tǒng)不會因為圖片問題而崩潰,在應用服務器和圖片服務器上,可以進行不同的配置優(yōu)化,比如apache在配置ContentType的時候可以盡量少支持,盡可能少的LoadModule,保證更高的系統(tǒng)消耗和執(zhí)行效率。

3、數(shù)據(jù)庫集群和庫表散列大型網(wǎng)站都有復雜的應用,這些應用必須使用數(shù)據(jù)庫,那么在面對大量訪問的時候,數(shù)據(jù)庫的瓶頸很快就能顯現(xiàn)出來,這時一臺數(shù)據(jù)庫將很快無法滿足應用,于是我們需要使用數(shù)據(jù)庫集群或者庫表散列。在數(shù)據(jù)庫集群方面,很多數(shù)據(jù)庫都有自己的解決方案,Oracle、Sybase等都有很好的方案,常用的MySQL提供的Master/Slave也是類似的方案,您使用了什么樣的DB,就參考相應的解決方案來實施即可。上面提到的數(shù)據(jù)庫集群由于在架構、成本、擴張性方面都會受到所采用DB類型的限制,于是我們需要從應用程序的角度來考慮改善系統(tǒng)架構,庫表散列是常用并且最有效的解決方案。我們在應用程序中安裝業(yè)務和應用或者功能模塊將數(shù)據(jù)庫進行分離,不同的模塊對應不同的數(shù)據(jù)庫或者表,再按照一定的策略對某個頁面或者功能進行更小的數(shù)據(jù)庫散列,比如用戶表,按照用戶ID進行表散列,這樣就能夠低成本的提升系統(tǒng)的性能并且有很好的擴展性。sohu的論壇就是采用了這樣的架構,將論壇的用戶、設置、帖子等信息進行數(shù)據(jù)庫分離,然后對帖子、用戶按照板塊和ID進行散列數(shù)據(jù)庫和表,最終可以在配置文件中進行簡單的配置便能讓系統(tǒng)隨時增加一臺低成本的數(shù)據(jù)庫進來補充系統(tǒng)性能。

4、緩存一詞搞技術的都接觸過,很多地方用到緩存。網(wǎng)站架構和網(wǎng)站開發(fā)中的緩存也是非常重要。這里先講述最基本的兩種緩存。高級和分布式的緩存在后面講述。架構方面的緩存,對Apache比較熟悉的人都能知道Apache提供了自己的緩存模塊,也可以使用外加的Squid模塊進行緩存,這兩種方式均可以有效的提高Apache的訪問響應能力。網(wǎng)站程序開發(fā)方面的緩存,Linux上提供的Memory Cache是常用的緩存接口,可以在web開發(fā)中使用,比如用Java開發(fā)的時候就可以調(diào)用MemoryCache對一些數(shù)據(jù)進行緩存和通訊共享,一些大型社區(qū)使用了這樣的架構。另外,在使用web語言開發(fā)的時候,各種語言基本都有自己的緩存模塊和方法,PHP有Pear的Cache模塊,Java就更多了,.net不是很熟悉,相信也肯定有。

5、鏡像是大型網(wǎng)站常采用的提高性能和數(shù)據(jù)安全性的方式,鏡像的技術可以解決不同網(wǎng)絡接入商和地域帶來的用戶訪問速度差異,比如 ChinaNet和EduNet之間的差異就促使了很多網(wǎng)站在教育網(wǎng)內(nèi)搭建鏡像站點,數(shù)據(jù)進行定時更新或者實時更新。在鏡像的細節(jié)技術方面,這里不闡述太深,有很多專業(yè)的現(xiàn)成的解決架構和產(chǎn)品可選。也有廉價的通過軟件實現(xiàn)的思路,比如Linux上的rsync等工具。

6、負載均衡將是大型網(wǎng)站解決高負荷訪問和大量并發(fā)請求采用的終極解決辦法。負載均衡技術發(fā)展了多年,有很多專業(yè)的服務提供商和產(chǎn)品可以選擇,我個人接觸過一些解決方法,其中有兩個架構可以給大家做參考。

7、硬件四層交換第四層交換使用第三層和第四層信息包的報頭信息,根據(jù)應用區(qū)間識別業(yè)務流,將整個區(qū)間段的業(yè)務流分配到合適的應用服務器進行處理。第四層交換功能就象是虛 IP,指向物理服務器。它傳輸?shù)臉I(yè)務服從的協(xié)議多種多樣,有HTTP、FTP、NFS、Telnet或其他協(xié)議。這些業(yè)務在物理服務器基礎上,需要復雜的載量平衡算法。在IP世界,業(yè)務類型由終端TCP或UDP端口地址來決定,在第四層交換中的應用區(qū)間則由源端和終端IP地址、TCP和UDP端口共同決定。在硬件四層交換產(chǎn)品領域,有一些知名的產(chǎn)品可以選擇,比如Alteon、F5等,這些產(chǎn)品很昂貴,但是物有所值,能夠提供非常優(yōu)秀的性能和很靈活的管理能力。Yahoo中國當初接近2000臺服務器使用了三四臺Alteon就搞定了。

8、軟件四層交換大家知道了硬件四層交換機的原理后,基于OSI模型來實現(xiàn)的軟件四層交換也就應運而生,這樣的解決方案實現(xiàn)的原理一致,不過性能稍差。但是滿足一定量的壓力還是游刃有余的,有人說軟件實現(xiàn)方式其實更靈活,處理能力完全看你配置的熟悉能力。軟件四層交換我們可以使用Linux上常用的LVS來解決,LVS就是Linux Virtual Server,他提供了基于心跳線heartbeat的實時災難應對解決方案,提高系統(tǒng)的魯棒性,同時可供了靈活的虛擬VIP配置和管理功能,可以同時滿足多種應用需求,這對于分布式的系統(tǒng)來說必不可少。一個典型的使用負載均衡的策略就是,在軟件或者硬件四層交換的基礎上搭建squid集群,這種思路在很多大型網(wǎng)站包括搜索引擎上被采用,這樣的架構低成本、高性能還有很強的擴張性,隨時往架構里面增減節(jié)點都非常容易。這樣的架構我準備空了專門詳細整理一下和大家探討。對于大型網(wǎng)站來說,前面提到的每個方法可能都會被同時使用到,我這里介紹得比較淺顯,具體實現(xiàn)過程中很多細節(jié)還需要大家慢慢熟悉和體會,有時一個很小的squid參數(shù)或者apache參數(shù)設置,對于系統(tǒng)性能的影響就會很大,希望大家一起討論,達到拋磚引玉之效。#p#

用squid做web cache server,而apache在squid的后面提供真正的web服務。當然使用這樣的架構必須要保證主頁上大部分都是靜態(tài)頁面。這就需要程序員的配合將頁面在反饋給客戶端之前將頁面全部轉(zhuǎn)換成靜態(tài)頁面。

基本看出sina和sohu對于頻道等欄目都用了相同的技術,即squid來監(jiān)聽這些IP的80端口,而真正的web server來監(jiān)聽另外一個端口。從用戶的感覺上來說不會有任何的區(qū)別,而相對于將web server直接和客戶端連在一起的方式,這樣的方式明顯的節(jié)省的帶寬和服務器。用戶訪問的速度感覺也會更快。

實例Yupoo! 的網(wǎng)站技術架構

帶寬:4000M/S 

服務器數(shù)量:60 臺左右

Web服務器:Lighttpd, Apache, nginx

應用服務器:Tomcat

其他:Python, Java, MogileFS 、ImageMagick 等

首先看一下網(wǎng)站的架構圖:

 

Yupoo_Arch.jpg

 

該架構圖給出了很好的概覽(點擊可以查看在 Yupoo! 上的大圖和原圖,請注意該圖版權信息)。

關于 Squid 與 Tomcat

Squid 與 Tomcat 似乎在 Web 2.0 站點的架構中較少看到。我首先是對 Squid 有點疑問,對此阿華的解釋是"目前暫時還沒找到效率比 Squid 高的緩存系統(tǒng),原來命中率的確很差,后來在 Squid 前又裝了層 Lighttpd, 基于 url 做 hash, 同一個圖片始終會到同一臺 squid 去,所以命中率徹底提高了"

對于應用服務器層的 Tomcat,現(xiàn)在 Yupoo! 技術人員也在逐漸用其他輕量級的東西替代,而 YPWS/YPFS 現(xiàn)在已經(jīng)用 Python 進行開發(fā)了。

名次解釋:

  • YPWS--Yupoo Web Server YPWS 是用 Python開發(fā)的一個小型 Web 服務器,提供基本的 Web 服務外,可以增加針對用戶、圖片、外鏈網(wǎng)站顯示的邏輯判斷,可以安裝于任何有空閑資源的服務器中,遇到性能瓶頸時方便橫向擴展。
  • YPFS--Yupoo File System 與 YPWS 類似,YPFS 也是基于這個 Web 服務器上開發(fā)的圖片上傳服務器。

【Updated: 有網(wǎng)友留言質(zhì)疑 Python 的效率,Yupoo 老大劉平陽在 del.icio.us 上寫到 "YPWS用Python自己寫的,每臺機器每秒可以處理294個請求, 現(xiàn)在壓力幾乎都在10%以下"】

圖片處理層

接下來的 Image Process Server 負責處理用戶上傳的圖片。使用的軟件包也是 ImageMagick,在上次存儲升級的同時,對于銳化的比率也調(diào)整過了(我個人感覺,效果的確好了很多)。”Magickd“ 是圖像處理的一個遠程接口服務,可以安裝在任何有空閑 CPU資源的機器上,類似 Memcached的服務方式。

我們知道 Flickr 的縮略圖功能原來是用 ImageMagick 軟件包的,后來被雅虎收購后出于版權原因而不用了(?);EXIF 與 IPTC Flicke 是用 Perl 抽取的,我是非常建議 Yupoo! 針對 EXIF 做些文章,這也是潛在產(chǎn)生受益的一個重點。

圖片存儲層

原來 Yupoo! 的存儲采用了磁盤陣列柜,基于 NFS 方式的,隨著數(shù)據(jù)量的增大,”Yupoo! 開發(fā)部從07年6月份就開始著手研究一套大容量的、能滿足 Yupoo! 今后發(fā)展需要的、安全可靠的存儲系統(tǒng)“,看來 Yupoo! 系統(tǒng)比較有信心,也是滿懷期待的,畢竟這要支撐以 TB 計算的海量圖片的存儲和管理。我們知道,一張圖片除了原圖外,還有不同尺寸的,這些圖片統(tǒng)一存儲在 MogileFS 中。

對于其他部分,常見的 Web 2.0 網(wǎng)站必須軟件都能看到,如 MySQL、Memcached 、Lighttpd 等。Yupoo! 一方面采用不少相對比較成熟的開源軟件,一方面也在自行開發(fā)定制適合自己的架構組件。這也是一個 Web 2.0 公司所必需要走的一個途徑。

非常感謝一下 Yupoo! 阿華對于技術信息的分享,技術是共通的。下一個能爆料是哪家?

--EOF--#p#

lighttpd+squid這套緩存是放在另外一個機房作為cdn的一個節(jié)點使用的,圖中沒描繪清楚,給大家?guī)聿槐懔恕?/p>

squid前端用lighttpd沒用nginx,主要是用了這么久,沒出啥大問題,所以就沒想其他的了。

URL Hash的擴展性的確不好,能做的就是不輕易去增減服務器,我們目前是5臺服務器做一組hash.

我們現(xiàn)在用Python寫的Web Server,在效率方面,我可以給個測試數(shù)據(jù),根據(jù)目前的訪問日志模擬訪問測試的結果是1臺ypws,平均每秒處理294個請求(加載所有的邏輯判斷)。

在可靠性上,還不沒具體的數(shù)據(jù),目前運行1個多月還沒有任何異常。

lvs每個節(jié)點上都裝nginx,主要是為了反向代理及處理靜態(tài)內(nèi)容,不過apache已顯得不是那么必需,準備逐漸去掉。

我們處理圖片都是即時的,我們目前半數(shù)以上的服務器都裝了magickd服務,用來分擔圖片處理請求。

實例:Tailrank 網(wǎng)站架構

每天數(shù)以千萬計的 Blog 內(nèi)容中,實時的熱點是什么? Tailrank 這個 Web 2.0 Startup 致力于回答這個問題。

專門爆料網(wǎng)站架構的 Todd Hoff 對 Kevin Burton 進行了采訪。于是我們能了解一下 Tailrank 架構的一些信息。每小時索引 2400 萬的 Blog 與 Feed,內(nèi)容處理能力為 160-200Mbps,IO 寫入大約在10-15MBps。每個月要處理 52T 之多的原始數(shù)據(jù)。Tailrank 所用的爬蟲現(xiàn)在已經(jīng)成為一個獨立產(chǎn)品:spinn3r。#p#

服務器硬件

目前大約 15 臺服務器,CPU 是 64 位的 Opteron。每臺主機上掛兩個 SATA 盤,做 RAID 0。據(jù)我所知,國內(nèi)很多 Web 2.0 公司也用的是類似的方式,SATA 盤容量達,低廉價格,堪稱不二之選。操作系統(tǒng)用的是 Debian Linux 。Web 服務器用 Apache 2.0,Squid 做反向代理服務器。

數(shù)據(jù)庫

Tailrank 用 MySQL 數(shù)據(jù)庫,聯(lián)邦數(shù)據(jù)庫形式。存儲引擎用 InnoDB, 數(shù)據(jù)量 500GB。Kevin Burton 也指出了 MySQL 5 在修了一些 多核模式下互斥鎖的問題(This Bug?)。到數(shù)據(jù)庫的JDBC 驅(qū)動連接池用 lbpool 做負載均衡。MySQL Slave 或者 Master的復制用 MySQLSlaveSync 來輕松完成。不過即使這樣,還要花費 20%的時間來折騰 DB。

其他開放的軟件

任何一套系統(tǒng)都離不開合適的 Profiling 工具,Tailrank 也不利外,針對 Java 程序的 Benchmark 用 Benchmark4j。Log 工具用 Log5j(不是 Log4j)。Tailrank 所用的大部分工具都是開放的。

Tailrank 的一個比較大的競爭對手是 Techmeme,雖然二者暫時看面向內(nèi)容的側重點有所不同。其實,最大的對手還是自己,當需要挖掘的信息量越來越大,如果精準并及時的呈現(xiàn)給用戶內(nèi)容的成本會越來越高。從現(xiàn)在來看,Tailrank 離預期目標還差的很遠。期待羅馬早日建成#p#

YouTube架構學習

原文: YouTube Architecture

YouTube發(fā)展迅速,每天超過1億的視頻點擊量,但只有很少人在維護站點和確保伸縮性。

平臺

  • Apache
  • Python
  • Linux(SuSe)
  • MySQL
  • psyco,一個動態(tài)的Python到C的編譯器
  • lighttpd代替Apache做視頻查看

狀態(tài)

  • 支持每天超過1億的視頻點擊量
  • 成立于2005年2月
  • 于2006年3月達到每天3千萬的視頻點擊量
  • 于2006年7月達到每天1億的視頻點擊量
  • 2個系統(tǒng)管理員,2個伸縮性軟件架構師
  • 2個軟件開發(fā)工程師,2個網(wǎng)絡工程師,1個DBA
  • 處理飛速增長的流量

Java代碼

1. while (true)
2. {
3. identify_and_fix_bottlenecks();
4. drink();
5. sleep();
6. notice_new_bottleneck();
7. }
while (true)
{
identify_and_fix_bottlenecks();
drink();
sleep();
notice_new_bottleneck();
}

每天運行該循環(huán)多次

Web服務器

  1. NetScaler用于負載均衡和靜態(tài)內(nèi)容緩存
  2. 使用mod_fast_cgi運行Apache
  3. 使用一個Python應用服務器來處理請求的路由
  4. 應用服務器與多個數(shù)據(jù)庫和其他信息源交互來獲取數(shù)據(jù)和格式化html頁面
  5. 一般可以通過添加更多的機器來在Web層提高伸縮性
  6. Python的Web層代碼通常不是性能瓶頸,大部分時間阻塞在RPC
  7. Python允許快速而靈活的開發(fā)和部署
  8. 通常每個頁面服務少于100毫秒的時間
  9. 使用psyco(一個類似于JIT編譯器的動態(tài)的Python到C的編譯器)來優(yōu)化內(nèi)部循環(huán)
  10. 對于像加密等密集型CPU活動,使用C擴展
  11. 對于一些開銷昂貴的塊使用預先生成并緩存的html
  12. 數(shù)據(jù)庫里使用行級緩存
  13. 緩存完整的Python對象
  14. 有些數(shù)據(jù)被計算出來并發(fā)送給各個程序,所以這些值緩存在本地內(nèi)存中。這是個使用不當?shù)牟呗浴梅掌骼镒羁斓木彺鎸㈩A先計算的值發(fā)送給所有服務器也花不了多少時間。只需弄一個代理來監(jiān)聽更改,預計算,然后發(fā)送。

視頻服務

1,花費包括帶寬,硬件和能源消耗

2,每個視頻由一個迷你集群來host,每個視頻被超過一臺機器持有

3,使用一個集群意味著:

-更多的硬盤來持有內(nèi)容意味著更快的速度

-failover。如果一臺機器出故障了,另外的機器可以繼續(xù)服務

-在線備份

4,使用lighttpd作為Web服務器來提供視頻服務:

-Apache開銷太大

-使用epoll來等待多個fds

-從單進程配置轉(zhuǎn)變?yōu)槎噙M程配置來處理更多的連接

5,大部分流行的內(nèi)容移到CDN:

-CDN在多個地方備份內(nèi)容,這樣內(nèi)容離用戶更近的機會就會更高

-CDN機器經(jīng)常內(nèi)存不足,因為內(nèi)容太流行以致很少有內(nèi)容進出內(nèi)存的顛簸

6,不太流行的內(nèi)容(每天1-20瀏覽次數(shù))在許多colo站點使用YouTube服務器

-長尾效應。一個視頻可以有多個播放,但是許多視頻正在播放。隨機硬盤塊被訪問

-在這種情況下緩存不會很好,所以花錢在更多的緩存上可能沒太大意義。

-調(diào)節(jié)RAID控制并注意其他低級問題

-調(diào)節(jié)每臺機器上的內(nèi)存,不要太多也不要太少

視頻服務關鍵點

1,保持簡單和廉價

2,保持簡單網(wǎng)絡路徑,在內(nèi)容和用戶間不要有太多設備

3,使用常用硬件,昂貴的硬件很難找到幫助文檔

4,使用簡單而常見的工具,使用構建在Linux里或之上的大部分工具

5,很好的處理隨機查找(SATA,tweaks)

縮略圖服務

1,做到高效令人驚奇的難

2,每個視頻大概4張縮略圖,所以縮略圖比視頻多很多

3,縮略圖僅僅host在幾個機器上

4,持有一些小東西所遇到的問題:

-OS級別的大量的硬盤查找和inode和頁面緩存問題

-單目錄文件限制,特別是Ext3,后來移到多分層的結構。內(nèi)核2.6的最近改進可能讓Ext3允許大目錄,但在一個文件系統(tǒng)里存儲大量文件不是個好主意

-每秒大量的請求,因為Web頁面可能在頁面上顯示60個縮略圖

-在這種高負載下Apache表現(xiàn)的非常糟糕

-在Apache前端使用squid,這種方式工作了一段時間,但是由于負載繼續(xù)增加而以失敗告終。它讓每秒300個請求變?yōu)?0個

-嘗試使用lighttpd但是由于使用單線程它陷于困境。遇到多進程的問題,因為它們各自保持自己單獨的緩存

-如此多的圖片以致一臺新機器只能接管24小時

-重啟機器需要6-10小時來緩存

5,為了解決所有這些問題YouTube開始使用Google的BigTable,一個分布式數(shù)據(jù)存儲:

-避免小文件問題,因為它將文件收集到一起

-快,錯誤容忍

-更低的延遲,因為它使用分布式多級緩存,該緩存與多個不同collocation站點工作

-更多信息參考Google Architecture,GoogleTalk Architecture和BigTable

數(shù)據(jù)庫

1,早期

-使用MySQL來存儲元數(shù)據(jù),如用戶,tags和描述

-使用一整個10硬盤的RAID 10來存儲數(shù)據(jù)

-依賴于信用卡所以YouTube租用硬件

-YouTube經(jīng)過一個常見的革命:單服務器,然后單master和多read slaves,然后數(shù)據(jù)庫分區(qū),然后sharding方式

-痛苦與備份延遲。master數(shù)據(jù)庫是多線程的并且運行在一個大機器上所以它可以處理許多工作,slaves是單線程的并且通常運行在小一些的服務器上并且備份是異步的,所以slaves會遠遠落后于master

-更新引起緩存失效,硬盤的慢I/O導致慢備份

-使用備份架構需要花費大量的money來獲得增加的寫性能

-YouTube的一個解決方案是通過把數(shù)據(jù)分成兩個集群來將傳輸分出優(yōu)先次序:一個視頻查看池和一個一般的集群

2,后期

-數(shù)據(jù)庫分區(qū)

-分成shards,不同的用戶指定到不同的shards

-擴散讀寫

-更好的緩存位置意味著更少的IO

-導致硬件減少30%

-備份延遲降低到0

-現(xiàn)在可以任意提升數(shù)據(jù)庫的伸縮性

數(shù)據(jù)中心策略

1,依賴于信用卡,所以最初只能使用受管主機提供商

2,受管主機提供商不能提供伸縮性,不能控制硬件或使用良好的網(wǎng)絡協(xié)議

3,YouTube改為使用colocation arrangement。現(xiàn)在YouTube可以自定義所有東西并且協(xié)定自己的契約

4,使用5到6個數(shù)據(jù)中心加CDN

5,視頻來自任意的數(shù)據(jù)中心,不是最近的匹配或其他什么。如果一個視頻足夠流行則移到CDN

6,依賴于視頻帶寬而不是真正的延遲。可以來自任何colo

7,圖片延遲很嚴重,特別是當一個頁面有60張圖片時

8,使用BigTable將圖片備份到不同的數(shù)據(jù)中心,代碼查看誰是最近的

學到的東西

1,Stall for time。創(chuàng)造性和風險性的技巧讓你在短期內(nèi)解決問題而同時你會發(fā)現(xiàn)長期的解決方案

2,Proioritize。找出你的服務中核心的東西并對你的資源分出優(yōu)先級別

3,Pick your battles。別怕將你的核心服務分出去。YouTube使用CDN來分布它們最流行的內(nèi)容。創(chuàng)建自己的網(wǎng)絡將花費太多時間和太多money

4,Keep it simple!簡單允許你更快的重新架構來回應問題

5,Shard。Sharding幫助隔離存儲,CPU,內(nèi)存和IO,不僅僅是獲得更多的寫性能

6,Constant iteration on bottlenecks:

-軟件:DB,緩存

-OS:硬盤I/O

-硬件:內(nèi)存,RAID

7,You succeed as a team。擁有一個跨越條律的了解整個系統(tǒng)并知道系統(tǒng)內(nèi)部是什么樣的團隊,如安裝打印機,安裝機器,安裝網(wǎng)絡等等的人。With a good team all things are possible。#p#

實例:Google架構學習

Google是伸縮性的王者。Google一直的目標就是構建高性能高伸縮性的基礎組織來支持它們的產(chǎn)品。

平臺

Linux

大量語言:Python,Java,C++

狀態(tài)

在2006年大約有450,000臺廉價服務器

在2005年Google索引了80億Web頁面,現(xiàn)在沒有人知道數(shù)目

目前在Google有超過200個GFS集群。一個集群可以有1000或者甚至5000臺機器。成千上萬的機器從運行著5000000000000000字節(jié)存儲的GFS集群獲取數(shù)據(jù),集群總的讀寫吞吐量可以達到每秒40兆字節(jié)

目前在Google有6000個MapReduce程序,而且每個月都寫成百個新程序

BigTable伸縮存儲幾十億的URL,幾百千千兆的衛(wèi)星圖片和幾億用戶的參數(shù)選擇

堆棧

Google形象化它們的基礎組織為三層架構:

1,產(chǎn)品:搜索,廣告,email,地圖,視頻,聊天,博客

2,分布式系統(tǒng)基礎組織:GFS,MapReduce和BigTable

3,計算平臺:一群不同的數(shù)據(jù)中心里的機器

4,確保公司里的人們部署起來開銷很小

5,花費更多的錢在避免丟失日志數(shù)據(jù)的硬件上,其他類型的數(shù)據(jù)則花費較少

可信賴的存儲機制GFS(Google File System)

1,可信賴的伸縮性存儲是任何程序的核心需求。GFS就是Google的核心存儲平臺

2,Google File System - 大型分布式結構化日志文件系統(tǒng),Google在里面扔了大量的數(shù)據(jù)

3,為什么構建GFS而不是利用已有的東西?因為可以自己控制一切并且這個平臺與別的不一樣,Google需要:

-跨數(shù)據(jù)中心的高可靠性

-成千上萬的網(wǎng)絡節(jié)點的伸縮性

-大讀寫帶寬的需求

-支持大塊的數(shù)據(jù),可能為上千兆字節(jié)

-高效的跨節(jié)點操作分發(fā)來減少瓶頸

4,系統(tǒng)有Master和Chunk服務器

-Master服務器在不同的數(shù)據(jù)文件里保持元數(shù)據(jù)。數(shù)據(jù)以64MB為單位存儲在文件系統(tǒng)中。客戶端與Master服務器交流來在文件上做元數(shù)據(jù)操作并且找到包含用戶需要數(shù)據(jù)的那些Chunk服務器

-Chunk服務器在硬盤上存儲實際數(shù)據(jù)。每個Chunk服務器跨越3個不同的Chunk服務器備份以創(chuàng)建冗余來避免服務器崩潰。一旦被Master服務器指明,客戶端程序就會直接從Chunk服務器讀取文件

6,一個上線的新程序可以使用已有的GFS集群或者可以制作自己的GFS集群

7,關鍵點在于有足夠的基礎組織來讓人們對自己的程序有所選擇,GFS可以調(diào)整來適應個別程序的需求

使用MapReduce來處理數(shù)據(jù)

1,現(xiàn)在你已經(jīng)有了一個很好的存儲系統(tǒng),你該怎樣處理如此多的數(shù)據(jù)呢?比如你有許多TB的數(shù)據(jù)存儲在1000臺機器上。數(shù)據(jù)庫不能伸縮或者伸縮到這種級別花費極大,這就是MapReduce出現(xiàn)的原因

2,MapReduce是一個處理和生成大量數(shù)據(jù)集的編程模型和相關實現(xiàn)。用戶指定一個map方法來處理一個鍵/值對來生成一個中間的鍵/值對,還有一個reduce方法來合并所有關聯(lián)到同樣的中間鍵的中間值。許多真實世界的任務都可以使用這種模型來表現(xiàn)。以這種風格來寫的程序會自動并行的在一個大量機器的集群里運行。運行時系統(tǒng)照顧輸入數(shù)據(jù)劃分、程序在機器集之間執(zhí)行的調(diào)度、機器失敗處理和必需的內(nèi)部機器交流等細節(jié)。這允許程序員沒有多少并行和分布式系統(tǒng)的經(jīng)驗就可以很容易使用一個大型分布式系統(tǒng)資源

3,為什么使用MapReduce?

-跨越大量機器分割任務的好方式

-處理機器失敗

-可以與不同類型的程序工作,例如搜索和廣告。幾乎任何程序都有map和reduce類型的操作。你可以預先計算有用的數(shù)據(jù)、查詢字數(shù)統(tǒng)計、對TB的數(shù)據(jù)排序等等

4,MapReduce系統(tǒng)有三種不同類型的服務器

-Master服務器分配用戶任務到Map和Reduce服務器。它也跟蹤任務的狀態(tài)

-Map服務器接收用戶輸入并在其基礎上處理map操作。結果寫入中間文件

-Reduce服務器接收Map服務器產(chǎn)生的中間文件并在其基礎上處理reduce操作

5,例如,你想在所有Web頁面里的字數(shù)。你將存儲在GFS里的所有頁面拋入MapReduce。這將在成千上萬臺機器上同時進行并且所有的調(diào)整、工作調(diào)度、失敗處理和數(shù)據(jù)傳輸將自動完成

-步驟類似于:GFS -> Map -> Shuffle -> Reduction -> Store Results back into GFS

-在MapReduce里一個map操作將一些數(shù)據(jù)映射到另一個中,產(chǎn)生一個鍵值對,在我們的例子里就是字和字數(shù)

-Shuffling操作聚集鍵類型

-Reduction操作計算所有鍵值對的綜合并產(chǎn)生最終的結果

6,Google索引操作管道有大約20個不同的map和reduction。

7,程序可以非常小,如20到50行代碼

8,一個問題是掉隊者。掉隊者是一個比其他程序慢的計算,它阻塞了其他程序。掉隊者可能因為緩慢的IO或者臨時的CPU不能使用而發(fā)生。解決方案是運行多個同樣的計算并且當一個完成后殺死所有其他的

9,數(shù)據(jù)在Map和Reduce服務器之間傳輸時被壓縮了。這可以節(jié)省帶寬和I/O。

在BigTable里存儲結構化數(shù)據(jù)

1,BigTable是一個大伸縮性、錯誤容忍、自管理的系統(tǒng),它包含千千兆的內(nèi)存和1000000000000000的存儲。它可以每秒鐘處理百萬的讀寫

2,BigTable是一個構建于GFS之上的分布式哈希機制。它不是關系型數(shù)據(jù)庫。它不支持join或者SQL類型查詢

3,它提供查詢機制來通過鍵訪問結構化數(shù)據(jù)。GFS存儲存儲不透明的數(shù)據(jù)而許多程序需求有結構化數(shù)據(jù)

4,商業(yè)數(shù)據(jù)庫不能達到這種級別的伸縮性并且不能在成千上萬臺機器上工作

5,通過控制它們自己的低級存儲系統(tǒng)Google得到更多的控制權來改進它們的系統(tǒng)。例如,如果它們想讓跨數(shù)據(jù)中心的操作更簡單這個特性,它們可以內(nèi)建它

6,系統(tǒng)運行時機器可以自由的增刪而整個系統(tǒng)保持工作

7,每個數(shù)據(jù)條目存儲在一個格子里,它可以通過一個行key和列key或者時間戳來訪問

8,每一行存儲在一個或多個tablet中。一個tablet是一個64KB塊的數(shù)據(jù)序列并且格式為SSTable

9,BigTable有三種類型的服務器:

-Master服務器分配tablet服務器,它跟蹤tablet在哪里并且如果需要則重新分配任務

-Tablet服務器為tablet處理讀寫請求。當tablet超過大小限制(通常是100MB-200MB)時它們拆開tablet。當一個Tablet服務器失敗時,則100個Tablet服務器各自挑選一個新的tablet然后系統(tǒng)恢復。

-Lock服務器形成一個分布式鎖服務。像打開一個tablet來寫、Master調(diào)整和訪問控制檢查等都需要互斥

10,一個locality組可以用來在物理上將相關的數(shù)據(jù)存儲在一起來得到更好的locality選擇

11,tablet盡可能的緩存在RAM里

硬件

1,當你有很多機器時你怎樣組織它們來使得使用和花費有效?

2,使用非常廉價的硬件

3,A 1,000-fold computer power increase can be had for a 33 times lower cost if you you use a failure-prone infrastructure rather than an infrastructure built on highly reliable components. You must build reliability on top of unreliability for this strategy to work.

4,Linux,in-house rack design,PC主板,低端存儲

5,Price per wattage on performance basis isn't getting better. Have huge power and cooling issues

6,使用一些collocation和Google自己的數(shù)據(jù)中心

其他

1,迅速更改而不是等待QA

2,庫是構建程序的卓越方式

3,一些程序作為服務提供

4,一個基礎組織處理程序的版本,這樣它們可以發(fā)布而不用害怕會破壞什么東西

Google將來的方向

1,支持地理位置分布的集群

2,為所有數(shù)據(jù)創(chuàng)建一個單獨的全局名字空間。當前的數(shù)據(jù)由集群分離

3,更多和更好的自動化數(shù)據(jù)遷移和計算

4,解決當使用網(wǎng)絡劃分來做廣闊區(qū)域的備份時的一致性問題(例如保持服務即使一個集群離線維護或由于一些損耗問題)

學到的東西

1,基礎組織是有競爭性的優(yōu)勢。特別是對Google而言。Google可以很快很廉價的推出新服務,并且伸縮性其他人很難達到。許多公司采取完全不同的方式。許多公司認為基礎組織開銷太大。Google認為自己是一個系統(tǒng)工程公司,這是一個新的看待軟件構建的方式

2,跨越多個數(shù)據(jù)中心仍然是一個未解決的問題。大部分網(wǎng)站都是一個或者最多兩個數(shù)據(jù)中心。我們不得不承認怎樣在一些數(shù)據(jù)中心之間完整的分布網(wǎng)站是很需要技巧的

3,如果你自己沒有時間從零開始重新構建所有這些基礎組織你可以看看Hadoop。Hadoop是這里很多同樣的主意的一個開源實現(xiàn)

4,平臺的一個優(yōu)點是初級開發(fā)人員可以在平臺的基礎上快速并且放心的創(chuàng)建健全的程序。如果每個項目都需要發(fā)明同樣的分布式基礎組織的輪子,那么你將陷入困境因為知道怎樣完成這項工作的人相對較少

5,協(xié)同工作不一直是擲骰子。通過讓系統(tǒng)中的所有部分一起工作則一個部分的改進將幫助所有的部分。改進文件系統(tǒng)則每個人從中受益而且是透明的。如果每個項目使用不同的文件系統(tǒng)則在整個堆棧中享受不到持續(xù)增加的改進

6,構建自管理系統(tǒng)讓你沒必要讓系統(tǒng)關機。這允許你更容易在服務器之間平衡資源、動態(tài)添加更大的容量、讓機器離線和優(yōu)雅的處理升級

7,創(chuàng)建可進化的基礎組織,并行的執(zhí)行消耗時間的操作并采取較好的方案

8,不要忽略學院。學院有許多沒有轉(zhuǎn)變?yōu)楫a(chǎn)品的好主意。Most of what Google has done has prior art, just not prior large scale deployment.

9,考慮壓縮。當你有許多CPU而IO有限時壓縮是一個好的選擇。#p#

實例:Lighttpd+Squid+Apache搭建高效率Web服務器

架構原理

Apache通常是開源界的首選Web服務器,因為它的強大和可靠,已經(jīng)具有了品牌效應,可以適用于絕大部分的應用場合。但是它的強大有時候卻顯得笨重,配置文件得讓人望而生畏,高并發(fā)情況下效率不太高。而輕量級的Web服務器Lighttpd卻是后起之秀,其靜態(tài)文件的響應能力遠高于 Apache,據(jù)說是Apache的2-3倍。Lighttpd的高性能和易用性,足以打動我們,在它能夠勝任的領域,盡量用它。Lighttpd對 PHP的支持也很好,還可以通過Fastcgi方式支持其他的語言,比如Python。

畢竟Lighttpd是輕量級的服務器,功能上不能跟Apache比,某些應用無法勝任。比如Lighttpd還不支持緩存,而現(xiàn)在的絕大部分站點都是用程序生成動態(tài)內(nèi)容,沒有緩存的話即使程序的效率再高也很難滿足大訪問量的需求,而且讓程序不停的去做同一件事情也實在沒有意義。首先,Web程序是需要做緩存處理的,即把反復使用的數(shù)據(jù)做緩存。即使這樣也還不夠,單單是啟動Web處理程序的代價就不少,緩存最后生成的靜態(tài)頁面是必不可少的。而做這個是 Squid的強項,它本是做代理的,支持高效的緩存,可以用來給站點做反向代理加速。把Squid放在Apache或者Lighttpd的前端來緩存 Web服務器生成的動態(tài)內(nèi)容,而Web應用程序只需要適當?shù)卦O置頁面實效時間即可。

即使是大部分內(nèi)容動態(tài)生成的網(wǎng)站,仍免不了會有一些靜態(tài)元素,比如圖片、JS腳本、CSS等等,將Squid放在Apache或者Lighttp 前端后,反而會使性能下降,畢竟處理HTTP請求是Web服務器的強項。而且已經(jīng)存在于文件系統(tǒng)中的靜態(tài)內(nèi)容再在Squid中緩存一下,浪費內(nèi)存和硬盤空間。因此可以考慮將Lighttpd再放在Squid的前面,構成 Lighttpd+Squid+Apache的一條處理鏈,Lighttpd在最前面,專門用來處理靜態(tài)內(nèi)容的請求,把動態(tài)內(nèi)容請求通過proxy模塊轉(zhuǎn)發(fā)給Squid,如果Squid中有該請求的內(nèi)容且沒有過期,則直接返回給Lighttpd。新請求或者過期的頁面請求交由Apache中Web程序來處理。經(jīng)過Lighttpd和Squid的兩級過濾,Apache需要處理的請求將大大減少,減少了Web應用程序的壓力。同時這樣的構架,便于把不同的處理分散到多臺計算機上進行,由Lighttpd在前面統(tǒng)一把關。

在這種架構下,每一級都是可以進行單獨優(yōu)化的,比如Lighttpd可以采用異步IO方式,Squid可以啟用內(nèi)存來緩存,Apache可以啟用MPM 等,并且每一級都可以使用多臺機器來均衡負載,伸縮性很好。

原文:http://jythoner.iteye.com/blog/562567

【編輯推薦】

  1. 細分四層網(wǎng)站架構 解說網(wǎng)站的壓力究竟在哪里
  2. 大型網(wǎng)站架構不得不考慮的10個問題
  3. 五層拆解 聽酒哥講網(wǎng)站架構
  4. 大型網(wǎng)站架構技術專家談
責任編輯:黃丹 來源: ITeye
相關推薦

2011-03-18 10:46:05

LAMP網(wǎng)站架構

2009-05-13 09:10:59

Facebook存儲基礎架構照片應用程序

2011-09-13 09:08:22

架構

2025-02-10 14:13:54

SQL語句query

2010-10-08 13:53:02

Silverlight

2021-09-16 17:21:02

安超云云計算物聯(lián)網(wǎng)

2025-09-08 01:00:00

SpringRestClient架構

2019-07-28 21:05:47

ICMPIP網(wǎng)絡協(xié)議

2015-10-22 10:35:06

2011-06-13 16:20:25

網(wǎng)站信息架構收錄流量

2016-07-15 11:25:26

太一星晨

2011-06-14 08:38:59

網(wǎng)站結構

2011-08-29 14:50:08

jQuery插件

2021-05-14 11:05:38

MySQL慢日志數(shù)據(jù)庫

2016-12-02 19:00:13

Android FraAndroid

2010-02-06 10:14:36

Android Act

2010-03-29 10:50:04

安裝Nginx

2015-08-10 16:34:12

環(huán)信環(huán)信ONE SDK

2015-07-17 09:13:06

微服務SOA紅帽

2011-05-25 17:33:43

SEO網(wǎng)站用戶體驗
點贊
收藏

51CTO技術棧公眾號

92国产精品视频| 亚洲国产你懂的| 国产精品久久久久久亚洲影视| 国产麻豆a毛片| 日本精品在线播放| 精品久久久中文| 一个色的综合| 婷婷五月综合激情| 精品一区二区三区不卡| 性色av一区二区咪爱| 中文字幕伦理片| 韩国精品福利一区二区三区| 欧美日韩在线播| 成熟丰满熟妇高潮xxxxx视频| av黄色在线观看| 成人黄色在线网站| 成人性生交大片免费看小说| 国产精品久免费的黄网站| 91精品一区二区三区综合| 亚洲欧美精品一区| 精人妻一区二区三区| av亚洲一区| 狠狠久久五月精品中文字幕| 一区二区不卡视频| 欧美另类自拍| 成人高清在线视频| 亚洲综合在线播放| 中文字幕你懂的| 亚洲影院免费| 亚洲激情图片一区| 国内精品**久久毛片app| 91精品视频免费在线观看 | 欧美12av| 狠狠综合久久av一区二区| 精品一区二区在线观看| 国产成人在线一区| 国产农村妇女aaaaa视频| 国语精品一区| 精品中文字幕乱| 国产成人精品视频免费| 国产精品欧美日韩一区| 亚洲精品美女网站| 欧美日韩人妻精品一区在线| 国语精品视频| 337p亚洲精品色噜噜噜| 想看黄色一级片| 日韩欧国产精品一区综合无码| 日韩欧美一区二区在线| 免费看一级大黄情大片| 9765激情中文在线| 一区二区成人在线| 99视频精品全部免费看| 黄色网址视频在线观看| 中文字幕第一区综合| 青青成人在线| yw视频在线观看| 国产女人aaa级久久久级| 欧美一区二区综合| av在线日韩国产精品| 欧美韩国日本不卡| 亚洲一区在线免费| 国产原创精品视频| 亚洲男同性恋视频| 少妇大叫太大太粗太爽了a片小说| 污视频网站在线免费| 亚洲综合一区二区精品导航| 香港三级日本三级a视频| 国产桃色电影在线播放| 午夜不卡av免费| 欧美性久久久久| av在线不卡精品| 欧美日韩一区二区在线观看| 天天干天天色天天干| 日韩中文一区二区| 亚洲精品久久久久久久久久久久 | 亚洲国产aⅴ精品一区二区| 日韩欧美视频在线| 国产中文字幕一区二区| 欧美综合在线视频观看| 久久精品国产2020观看福利| 免看一级a毛片一片成人不卡| 亚洲承认在线| 国产精品久久久久久久久久新婚 | 一区二区精品在线| 69xxx在线| 欧美日韩精品在线观看| 9久久婷婷国产综合精品性色| 小说区图片区亚洲| 精品国产伦一区二区三区免费| 变态另类丨国产精品| 色喇叭免费久久综合网| 欧美精品aaa| 99久久久无码国产精品免费蜜柚 | 亚洲天堂久久新| 国产精品二区不卡| 97色在线视频观看| 91国内精品视频| 99国产欧美另类久久久精品| 一区二区三区欧美在线| av今日在线| 精品视频在线免费观看| 蜜桃色一区二区三区| 国产一区二区精品久| 成年人精品视频| 日日骚av一区二区| 国产精品亚洲午夜一区二区三区 | 偷拍亚洲欧洲综合| 手机在线成人免费视频| 粉嫩精品导航导航| 日韩在线观看av| www.毛片.com| 高清成人免费视频| 亚洲一区二区三区四区中文| 大桥未久在线视频| 日韩一级高清毛片| 快灬快灬一下爽蜜桃在线观看| 亚洲一本视频| 91免费国产网站| 成年人在线观看视频| 精品久久久一区二区| 亚洲欧美激情一区二区三区| 成人a'v在线播放| 日本一区二区在线播放| 丰满人妻熟女aⅴ一区| 亚洲同性同志一二三专区| 午夜免费一区二区| 综合国产视频| 91精品国产免费久久久久久| 成人h动漫精品一区二区无码 | 亚洲一区二区三区免费观看| 性欧美18xxxhd| 亚洲国产成人一区| 精品少妇久久久| 国产**成人网毛片九色| 欧美少妇在线观看| 国产精品1区| 久久天天躁日日躁| 一区二区视频网站| 中文在线免费一区三区高中清不卡| 国产aaa一级片| 噜噜噜狠狠夜夜躁精品仙踪林| 色综合久久久久久中文网| 99久久精品国产一区色| 亚洲欧洲另类国产综合| 中文字幕日韩综合| 欧美xxav| 亚洲一区二区三区在线视频| 国产传媒在线播放| 日韩一级片网址| 久久久久久久久久久久国产| 福利一区二区在线观看| 91网站在线观看免费| 91午夜精品| 午夜精品久久久久久久99热浪潮| 秋霞av鲁丝片一区二区| 亚洲国产成人va在线观看天堂| 风韵丰满熟妇啪啪区老熟熟女| 亚洲视频高清| 国产在线精品一区二区三区| 小视频免费在线观看| 亚洲网在线观看| 国产一级精品毛片| 亚洲视频在线观看三级| av在线天堂网| 99精品欧美| 日本在线免费观看一区| 四虎国产精品免费久久5151| 欧美成人sm免费视频| 乱精品一区字幕二区| 黑人巨大精品欧美一区二区一视频 | 可以免费看av的网址| 丝袜美腿亚洲一区二区图片| 日韩国产伦理| 亚洲精品伦理| 欧美精品情趣视频| 欧美一区二区三区四区久久 | 亚洲人成伊人成综合图片| 97视频在线播放| 麻豆app在线观看| 成人国产一区| 国产精品综合二区| 成年丰满熟妇午夜免费视频| 欧美中文高清| 7777免费精品视频| 成人综合影院| 日韩一区二区三区高清在线观看| 午夜欧美在线一二页| 中文字幕精品久久久| 午夜综合激情| 一区二区三区在线观看www| 欧洲一区在线| 欧美一级视频在线观看| 在线视频91p| 精品99一区二区三区| 天天天天天天天干| 亚洲一区在线观看免费观看电影高清 | 久久只有这里有精品| 精品影视av免费| 国产精品丝袜久久久久久消防器材| 久久国产精品成人免费观看的软件| 99视频在线| 国产成人亚洲一区二区三区| 久久久久久久久久久网站| 97超碰人人在线| 亚洲成人网久久久| 国产精品久久久久久无人区| 狠狠综合久久av一区二区小说| 日韩国产第一页| 久久久久久久国产精品影院| 国产伦理在线观看| 美女网站在线免费欧美精品| av7777777| 国产精品www.| 一区二区三区四区在线视频| 伊人春色之综合网| 国产精品视频一区二区三区经| 日韩成人综合网站| 日韩暖暖在线视频| 高潮在线视频| 欧美高跟鞋交xxxxxhd| av网站在线免费播放| 国产丝袜精品第一页| 丰满人妻一区二区| 欧美一级黄色大片| 久久久777精品电影网影网 | av在线播放网| 亚洲精品xxxx| 亚洲精品一区二区三区四区| 777xxx欧美| 亚洲精品国产精品乱码视色| 日韩欧美在线第一页| 日韩黄色三级视频| 亚洲午夜在线观看视频在线| 亚洲精品电影网| 欧美夫妇交换xxx| 狠狠网亚洲精品| 日本美女高潮视频| 美女爽到呻吟久久久久| 免费观看美女裸体网站| 国产一区欧美| 波多野结衣 作品| 亚洲欧美色图| 麻豆一区二区三区在线观看| 亚洲第一天堂| 天天在线免费视频| 你懂的成人av| 国产人妻人伦精品| 国产91免费视频| 日韩大片在线| 麻豆精品视频| 日韩精品丝袜美腿| 久久久免费看| 精品中文字幕一区二区三区av| 久久久久一区二区三区| 伊人久久综合影院| 欧美一区二区三区在线免费观看| 国产一区二区三区站长工具| 欧美重口乱码一区二区| 欧美视频网址| 在线免费观看一区二区三区| 91不卡在线观看| 久操手机在线视频| 国产亚洲精品v| 久久久久久久少妇| 免费看日韩精品| 波多野结衣免费观看| 大白屁股一区二区视频| 久久一区二区电影| 国产日韩视频一区二区三区| 国产成人精品视频免费| 玉米视频成人免费看| 国产亚洲成人精品| 日韩欧美综合在线视频| 中文字幕+乱码+中文字幕明步 | 国产精品综合视频| 妖精视频一区二区| 国产丝袜美腿一区二区三区| 久久精品一区二区三区四区五区| 一区二区免费在线| 欧美videossex极品| 欧美日韩欧美一区二区| 午夜精品无码一区二区三区| 国产偷国产偷亚洲清高网站| 免费看美女视频在线网站| 欧美精品一区二区免费| 三级中文字幕在线观看| 国产日本欧美一区| 久久久精品人妻无码专区| 久久综合久久综合久久综合| 五月婷婷婷婷婷| 亚洲一区二区三区四区在线观看 | 久久精品1区| 色18美女社区| 26uuu色噜噜精品一区二区| 日韩一区二区三区四区视频| 午夜欧美视频在线观看| 一级特黄aaaaaa大片| 亚洲黄页网在线观看| 欧美三级黄网| 欧美亚洲日本黄色| 欧洲大片精品免费永久看nba| 日本高清视频一区二区三区| 欧美~级网站不卡| 超碰网在线观看| 国产999精品久久久久久| 呻吟揉丰满对白91乃国产区| 午夜av一区二区三区| 国产又粗又长又大视频| 亚洲欧美中文另类| 手机电影在线观看| 成人观看高清在线观看免费| 蜜桃tv一区二区三区| 一本久道高清无码视频| 激情另类小说区图片区视频区| 亚洲自拍偷拍一区二区| 一区二区三区在线视频免费观看| 日韩不卡高清视频| 日韩精品亚洲精品| 爱福利在线视频| 999在线免费观看视频| 日韩精品一区二区久久| 久久久久久久久久久福利| 高清av一区二区| 欧美成人综合色| 91精品欧美一区二区三区综合在 | 精品中文字幕在线| 91嫩草国产线观看亚洲一区二区 | 91九色国产社区在线观看| 国产一区二区三区四区大秀| 每日在线更新av| 波多野结衣一区二区三区| 玖玖爱免费视频| 欧美一区二区高清| 国产一区久久精品| 川上优av一区二区线观看| 欧美丰满日韩| 美女在线视频一区二区| 欧美激情在线一区二区三区| 中文字幕高清在线免费播放| 亚洲精品在线视频| 天堂网在线最新版www中文网| 国产伦理久久久| 99香蕉国产精品偷在线观看| 在线观看亚洲免费视频| 亚洲国产成人高清精品| 亚洲乱色熟女一区二区三区| 不卡av在线网站| 精品亚洲a∨一区二区三区18| 国产高清免费在线| 精品在线免费视频| 国产少妇在线观看| 日韩免费一区二区三区在线播放| 18av在线播放| 国产乱码精品一区二区三区日韩精品| 影音先锋久久精品| 精品黑人一区二区三区观看时间| 精品高清美女精品国产区| 日本成人一区二区三区| 国产成人aa精品一区在线播放| 欧美日韩老妇| 拔插拔插华人永久免费| 亚洲精选免费视频| 成人小说亚洲一区二区三区| 午夜精品在线观看| 国产精品一区2区3区| 在线观看的毛片| 亚洲色图在线看| 人成网站在线观看| 日本成熟性欧美| 成人久久久久| 日韩欧美中文在线视频| 亚洲成人综合视频| 蜜桃成人在线视频| 国产日韩精品综合网站| 欧美日韩国产色综合一二三四| 亚洲精品乱码久久| 日韩欧美国产一区二区| √天堂资源地址在线官网| 亚洲综合小说区| 亚洲欧美不卡| 日本美女黄色一级片| 精品国产髙清在线看国产毛片 | 国产精品久久久久免费a∨| 国产精品久久久久无码av| 无码人妻丰满熟妇啪啪网站| 欧美性猛交xxxx| 免费超碰在线| 精品日产一区2区三区黄免费| 视频精品一区二区| 免费人成年激情视频在线观看| 亚洲免费人成在线视频观看| 亚洲青青久久| 黄色片视频在线免费观看| 亚洲品质自拍视频| 神马久久久久| 99re视频| 久久超碰97中文字幕| 91午夜视频在线观看| 日韩在线视频观看| 日韩高清在线免费观看|