成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

云端高性能技術(shù)架構(gòu)淺析

云計算
無論是國外的Google、Facebook、Amazon,還是國內(nèi)的Baidu、Taobao等,這些高性能的服務(wù)器在處理高并發(fā)的請求時,都能快速、準確的給予應(yīng)答。通過查閱資料,了解現(xiàn)有大型網(wǎng)站的技術(shù)架構(gòu),發(fā)現(xiàn)目前常用的技術(shù)有分層、緩存、負載均衡、數(shù)據(jù)庫性能優(yōu)化,分布式系統(tǒng)等等。接下類分別對這些技術(shù)進行簡單介紹。

無論是國外的Google、Facebook、Amazon,還是國內(nèi)的Baidu、Taobao等,這些高性能的服務(wù)器在處理高并發(fā)的請求時,都能快速、準確的給予應(yīng)答。通過查閱資料,了解現(xiàn)有大型網(wǎng)站的技術(shù)架構(gòu),發(fā)現(xiàn)目前常用的技術(shù)有分層、緩存、負載均衡、數(shù)據(jù)庫性能優(yōu)化,分布式系統(tǒng)等等。接下類分別對這些技術(shù)進行簡單介紹。

1 分層與服務(wù)分離

無論OSI的7層網(wǎng)絡(luò)結(jié)構(gòu),還是計算機底層硬件與上層軟件之間的分層,甚至于Web領(lǐng)域大家非常熟悉的MVC開發(fā)模式,分層在計算機領(lǐng)域無處不在。分層可以將不同的功能部件獨立起來,下層為上層提供訪問接口,支撐上層的功能;上層調(diào)用下層接口來完成服務(wù)。

分層也是服務(wù)器端采用的一種方法,通過將數(shù)據(jù)庫、文件資源等與應(yīng)用服務(wù)器分開,可以緩解服務(wù)器壓力。

另外,根據(jù)業(yè)務(wù)需求的不同,將明顯沒有交集的業(yè)務(wù)分開,獨立成不同的模塊單獨進行管理,也可以在很大程度上提升服務(wù)器性能。

2 緩存

緩存在計算機很多地方都有涉及,比如在內(nèi)存與硬盤之間增加Cache、增加IO緩沖區(qū)來緩解速度之間的不匹配。緩存的出現(xiàn)主要是依據(jù)計算機中著名的二八定律。緩存的技術(shù)主要包括本地緩存、分布式緩存、CDN和反向代理。

根據(jù)二八定律,80%的操作集中在20%的數(shù)據(jù)上。網(wǎng)站將常用的數(shù)據(jù)緩存在本地應(yīng)用服務(wù)器中,以后直接通過緩存中的數(shù)據(jù)來響應(yīng)用戶的請求,而不用再去計算。這樣就可以減少響應(yīng)時間。

分布式緩存相比本地緩存速度要慢,因為應(yīng)用服務(wù)器要訪問專門的緩存服務(wù)器來獲取數(shù)據(jù),但是應(yīng)用服務(wù)器主要用于處理請求,其自身內(nèi)存有限,如果緩存大量數(shù)據(jù),應(yīng)用程序的運行速度將受到明顯影響。因此很多大型網(wǎng)站都使用遠程分布式緩存,部署大內(nèi)存的服務(wù)器作為專門的緩存服務(wù)器。

緩存的另外兩種表現(xiàn)形式是CDN和反向代理。不同的地方在于,CDN部署在網(wǎng)絡(luò)提供商(比如電信、移動、聯(lián)通等)的機房,用戶在請求網(wǎng)站服務(wù)時,可以直接從網(wǎng)絡(luò)提供商機房獲取數(shù)據(jù);而反向代理則部署在網(wǎng)站的中心機房,當用戶的請求到中心機房后,首先訪問的服務(wù)器是反向代理服務(wù)器,如果反向代理服務(wù)器中有相應(yīng)資源的緩存,就將其直接返回給用戶,而不用再去請求應(yīng)用服務(wù)器。

3 負載均衡

負載均衡的原理就是去中心化。當用戶并發(fā)請求量巨大時,如果將所有的請求都交給一個服務(wù)器去處理,很可能造成服務(wù)器宕機,即使能夠正確響應(yīng),響應(yīng)時間也可能會比較長,給用戶造成不好的體驗。

大型網(wǎng)站都是將一個域名綁定不同的服務(wù)器IP,這樣表面上好像只有一臺服務(wù)器在提供服務(wù),實際則是一個服務(wù)器集群在提供相同的服務(wù)。負載均衡器接收所有用戶的請求,再根據(jù)每臺應(yīng)用服務(wù)器正在處理的請求數(shù)量來對請求進行分配。這樣就能在很大程度上提高系統(tǒng)的性能,同時擴展性也得到很大提升——當某臺服務(wù)器宕機時,直接替換就可以,其它服務(wù)器繼續(xù)相應(yīng)用戶請求;當用戶請求量超過預定峰值時,也可以通過實時增加服務(wù)器來緩解壓力。

4 數(shù)據(jù)庫性能優(yōu)化

使用緩存后,大部分的數(shù)據(jù)操作不需要通過數(shù)據(jù)庫即可完成。但是仍有一部分讀操作(緩存訪問不命中,緩存過期)和全部的寫操作需要訪問數(shù)據(jù)庫,在網(wǎng)站的用戶達到一定規(guī)模時,數(shù)據(jù)庫因為負載壓力過高而成為網(wǎng)站的瓶頸。因而需要對數(shù)據(jù)庫進行優(yōu)化,常用的技術(shù)主要包括讀寫分離、結(jié)合非關(guān)系型數(shù)據(jù)庫使用、分布式數(shù)據(jù)庫等。

一般情況下,數(shù)據(jù)庫讀操作所需要的時間比寫操作的要少很多,通過將數(shù)據(jù)庫的讀寫操作分離可以明顯改善數(shù)據(jù)庫性能。目前很多大型網(wǎng)站都配置數(shù)據(jù)庫主從關(guān)系,主數(shù)據(jù)庫用于寫操作并將數(shù)據(jù)同步更新到從數(shù)據(jù)庫上,從數(shù)據(jù)庫只負責讀操作。例如,新浪云計算平臺(SAE)給用戶的數(shù)據(jù)庫就進行了主從配置。

同時,可以利用非關(guān)系型數(shù)據(jù)庫和搜索引擎對數(shù)據(jù)檢索的優(yōu)勢,來減輕應(yīng)用服務(wù)器直接訪問關(guān)系型數(shù)據(jù)庫的壓力。

當對業(yè)務(wù)進行分離后,可以根據(jù)業(yè)務(wù)所涉及的數(shù)據(jù),將數(shù)據(jù)庫進行分庫部署在不同的服務(wù)器上。

5 冗余

網(wǎng)站需要7x24小時連續(xù)運行,但是服務(wù)器隨時可能出現(xiàn)故障,特別是服務(wù)器規(guī)模比較大時,出現(xiàn)某臺服務(wù)器宕機是必然事件。要想保證在服務(wù)器宕機的情況下網(wǎng)站依然可以繼續(xù)服務(wù),不丟失數(shù)據(jù),就需要一定程度的服務(wù)器冗余運行,數(shù)據(jù)冗余備份,這樣當某臺服務(wù)器宕機時,可以將其上的服務(wù)和數(shù)據(jù)轉(zhuǎn)移到其它機器上繼續(xù)運行。

#p#

接下來,我們主要針對緩存中的Memcached技術(shù)進行介紹。

1 Memcached

1.1 Memcached簡介

Memcached是一個高性能的分布式對象緩存系統(tǒng),用于動態(tài)Web應(yīng)用,以減輕數(shù)據(jù)庫負載[1]。它通過在內(nèi)存中緩存數(shù)據(jù)和對象來減少應(yīng)用程序讀取數(shù)據(jù)庫的次數(shù),從而提高網(wǎng)站的性能。如圖1是Memcached在網(wǎng)站中的位置示意圖。

云端高性能技術(shù)架構(gòu)淺析

圖1 Memcached位置示意圖

Memcached以鍵值對的形式將數(shù)據(jù)(或?qū)ο?緩存在內(nèi)存中,雖然使用到了多個服務(wù)節(jié)點,但是和一般分布式緩存系統(tǒng)不同的是,每一份數(shù)據(jù)在Memcached中只存在一份,每個Memcached服務(wù)節(jié)點之間相互不可見。因此,Memcached中每份數(shù)據(jù)的鍵值是唯一的。

簡而言之,Memcached類似于一個典型的非關(guān)系型存儲系統(tǒng),可以歸入基于內(nèi)容的鍵值對存儲類型[2]。

1.2 Memcached工作原理

當高并發(fā)的外部請求訪問服務(wù)器時,負載均衡服務(wù)器會根據(jù)各應(yīng)用服務(wù)器的使用情況進行分配轉(zhuǎn)發(fā),如果需要對數(shù)據(jù)進行讀取,應(yīng)用服務(wù)器會按照一定的Hash算法計算鍵值的結(jié)果,并根據(jù)計算結(jié)果訪問Memcached的某一個服務(wù)節(jié)點,服務(wù)節(jié)點再次計算鍵值的第二次Hash值,再根據(jù)計算結(jié)果對數(shù)據(jù)進行讀取,如果緩存中有數(shù)據(jù)則直接返回給應(yīng)用,否則需要從數(shù)據(jù)庫獲取數(shù)據(jù),同時將獲取到的數(shù)據(jù)寫入到Memcached中[3]。

云端高性能技術(shù)架構(gòu)淺析

圖2 Memcached工作原理

#p#

2 性能分析

在本機上安裝Memcached,客戶端使用Memcached提供的接口進行數(shù)據(jù)的存儲與訪問,并與直接通過MySQL獲取數(shù)據(jù)的方式進行對比。

2.1 Memcached安裝

由于Memcached主要用于服務(wù)器端,而服務(wù)器端操作系統(tǒng)大多用Linux,因此網(wǎng)上多數(shù)教程是關(guān)于在Linux上安裝使用Memcached的。在Windows上安裝更加簡單,只需找到對應(yīng)操作系統(tǒng)的版本即可[4]。

安裝Memcached后,打開服務(wù)即可使用相應(yīng)功能,Memcached默認監(jiān)聽11211端口,如果是在本機上,直接使用127.0.0.1:11211就可以訪問了,這點和MySQL非常類似。

Memcached提供了很多高級語言的接口,可以根據(jù)這些接口來完成對數(shù)據(jù)的存儲與訪問。

2.2 Memcached和MySQL性能比較

為了比較使用Memcached前后訪問數(shù)據(jù)性能的情況,進行以下模擬實驗。

硬件條件:

CPU:Intel Core 2.60GHz;

內(nèi)存:2GB;

軟件條件:

操作系統(tǒng):Window 64;

Memcached***內(nèi)存:64MB;

Memcached***連接數(shù):1024。

MySQL中共有29120條記錄,使用多線程模擬用戶的并發(fā)訪問,每個用戶請求100次數(shù)據(jù)讀取。表1是在用戶數(shù)量為N的條件下,測試所有請求都處理完所用時間T的結(jié)果。

表1 測試結(jié)果 

云端高性能技術(shù)架構(gòu)淺析

三種方法說明:MySQL表示所有的數(shù)據(jù)請求直接通過訪問數(shù)據(jù)庫返回;隨機Mem表示在增加了Memcached緩存后,對于每個用戶的100次請求,數(shù)據(jù)之間沒有任何關(guān)系,完全隨機;二八定律Mem表示用戶的請求遵循二八定律,就是說平均100次請求中,有比較多的次數(shù)訪問的是相同數(shù)據(jù),這個可以通過程序模擬,在訪問時控制相應(yīng)次數(shù)訪問相同的數(shù)據(jù)。

圖3、圖4分別對應(yīng)表1的兩種數(shù)據(jù)表示。

云端高性能技術(shù)架構(gòu)淺析

圖3 柱狀圖顯示結(jié)果

云端高性能技術(shù)架構(gòu)淺析

圖4 折線顯示結(jié)果

由于在完全隨機訪問的條件下,數(shù)據(jù)的命中率非常低(幾乎為0),每次請求都需要從數(shù)據(jù)庫中獲取,同時還要將請求到的數(shù)據(jù)保存在緩存中,因此效率比直接從數(shù)據(jù)庫中獲取還要低。但是當用戶多次請求相同的數(shù)據(jù)是,使用Memcached 明顯比直接從MySQL中獲取效率要高很多。

整個測試過程還存在著一些不足之處:

  • 受實際條件限制,Memcached服務(wù)節(jié)點數(shù)只有1個;
  • 另外,數(shù)據(jù)庫中數(shù)據(jù)量級也不是非常大;
  • 沒有測試數(shù)據(jù)寫入的情況

#p#

3 關(guān)鍵問題

通過上述分析可知,Memcached在一些條件下對提升數(shù)據(jù)訪問效率有很大作用。對于那些不常變動訪問頻率又非常高的數(shù)據(jù),將其放在緩存中,可以很好的緩解數(shù)據(jù)庫的壓力,進而提升系統(tǒng)性能。但同時,Memcached自身也還存在著一些不足之處:

由于Memcached是將數(shù)據(jù)緩存在內(nèi)存中,當出現(xiàn)斷電情況時,數(shù)據(jù)將立即消失;

所有數(shù)據(jù)在Memcached中只保存一份,因此可靠性不是很高,一旦某臺服務(wù)節(jié)點出現(xiàn)故障,相應(yīng)的數(shù)據(jù)將丟失;

Memcached在設(shè)計之初每個key的value***是1MB,隨著目前數(shù)據(jù)量的快速增長,緩存數(shù)據(jù)量大的文件,比如音頻、視頻等有很大不足。

4 參考資料

俞華鋒.Memcached 在大型網(wǎng)站中的應(yīng)用[J]. 科技信息, 2008(1), p70.

王新根. Web后端性能優(yōu)化關(guān)鍵技術(shù)研究[D]. 浙江大學, 2012.

http://en.wikipedia.org/wiki/Memcached

http://blog.csdn.net/zhaotengfei36520/article/details/41315329

徐劍強,鄒偉平. Memcached應(yīng)用研究[J]. 科技廣場, 2012(7), p95-97.

博文出處:http://www.cnblogs.com/luop/p/4392894.html
 

責任編輯:Ophira 來源: 博客園
相關(guān)推薦

2017-07-07 16:36:28

BIOIO模型 NIO

2017-11-27 09:14:29

2023-10-31 18:52:29

網(wǎng)絡(luò)框架XDP技術(shù)

2021-04-21 15:21:37

技術(shù)架構(gòu)高并發(fā)基礎(chǔ)源碼解析

2020-03-23 14:35:28

前端架構(gòu)應(yīng)用程序

2010-07-21 08:51:48

淘寶架構(gòu)

2022-11-11 08:55:29

RoCE技術(shù)應(yīng)用

2018-01-11 13:23:22

華為云

2011-08-04 08:52:08

架構(gòu)

2012-09-28 11:02:59

NVIDIAARM架構(gòu)高性能

2009-03-09 10:10:17

2024-07-12 08:42:58

Redis高性能架構(gòu)

2022-03-22 14:06:43

Java性能技術(shù)匯編

2013-10-08 17:01:29

華為LTE華為

2018-03-16 09:13:45

RDMA高性能數(shù)據(jù)中心

2014-04-09 10:50:01

Squid架構(gòu)緩存服務(wù)器

2009-07-30 10:28:56

Web高性能開發(fā)

2020-03-26 15:16:26

EdgeBoard

2015-06-10 11:47:21

云計算互聯(lián)網(wǎng)+O2O

2024-12-31 16:11:41

邊緣計算火山引擎虛擬機
點贊
收藏

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

主站蜘蛛池模板: 五月综合色啪 | 精品亚洲一区二区 | 99视频久| 欧美无乱码久久久免费午夜一区 | 日韩在线一区二区三区 | 亚洲免费在线视频 | 99国产精品99久久久久久 | 亚洲欧美久久 | 91福利在线观看 | 五月婷婷中文 | 欧美高清视频 | 国产欧美在线 | 欧美日一区 | 国产精久久久久久 | 日韩电影中文字幕在线观看 | 国产农村妇女精品一区 | 99久久99久久精品国产片果冰 | 亚洲成人精品久久 | 狠狠干在线 | 综合自拍 | 中文字幕日韩av | 国产精选一区 | 欧美在线成人影院 | 天天干天天草 | 欧美日本一区 | 国产精品一级 | 久久国产精品亚洲 | 美女天堂在线 | 国产视频不卡一区 | 精品亚洲一区二区三区 | 麻豆精品一区二区三区在线观看 | 999在线精品| 久久久久久久久淑女av国产精品 | 久久毛片| 久久国产一区二区三区 | 亚洲福利一区二区 | 9久久婷婷国产综合精品性色 | 丝袜美腿av | 亚洲视频在线观看一区二区三区 | 亚洲人va欧美va人人爽 | 精久久久 |