熱門(mén)標簽
- 首陽(yáng)網(wǎng)站設計制作
- 龍臺外貿網(wǎng)站建設
- 電子商務(wù)網(wǎng)站內容設計的原則是
- 葛牌網(wǎng)頁(yè)制作公司
- 平陸制作網(wǎng)站
- 國外店鋪空間設計網(wǎng)站
- 上海軍天湖農場(chǎng)SEO優(yōu)化
- 經(jīng)典創(chuàng )意網(wǎng)站設計
- 車(chē)古網(wǎng)站建設
- 四唯網(wǎng)站定制
- 石埡網(wǎng)站制作
- 嬰幼兒設計網(wǎng)站
- 陽(yáng)泉網(wǎng)站定制
- 喀贊其SEO優(yōu)化
- 白旄外貿網(wǎng)站建設
- cdr軟件網(wǎng)站首頁(yè)設計怎么做
- 公司網(wǎng)站域名設計
- 網(wǎng)站設計ui首頁(yè)模板
- 萊山街道SEO優(yōu)化
- 禮泉網(wǎng)站建設公司
熱文推薦
- 企業(yè)網(wǎng)站建設的運營(yíng)需要具備的常識…
- 行業(yè)龍頭網(wǎng)站建設必備的幾大要素-…
- 深圳福田網(wǎng)站建設網(wǎng)絡(luò )公司,網(wǎng)站關(guān)…
- 搜索引擎關(guān)注網(wǎng)站的要要素有哪些?…
- 網(wǎng)站制作千萬(wàn)不可忽視實(shí)用性
- 移動(dòng)互聯(lián)這么熱門(mén),網(wǎng)絡(luò )營(yíng)銷(xiāo)人你知…
- 建站時(shí)怎么規劃網(wǎng)站結構
- 所有的設計都離不開(kāi)排版,看看如何…
- 電商APP設計時(shí)有哪些問(wèn)題要注意-深…
- 在網(wǎng)站建設中有哪些辦法提高關(guān)鍵詞…
大型網(wǎng)站分布式緩存架構
3. 分布式緩存建筑
深圳網(wǎng)站建設分布式緩存是指在多臺服務(wù)器組成的集群中部署緩存,以集群方式提供緩存服務(wù)。體系結構有兩種類(lèi)型:一種是需要更新由JBoss Cache表示的同步分布式緩存,另一種是由Memcached表示的不i相通信。
JBoss Cache分布式緩存在群集中的所有服務(wù)器中保存相同的緩存數據。當一臺服務(wù)器有緩存數據更新時(shí),它會(huì )通知集群中的其他機器更新緩存數據或清除緩存數據,如圖4.9JBoss Cache所示一般來(lái)說(shuō),應用程序和緩存部署在同一臺服務(wù)器上,應用程序可以快速從本地獲取緩存數據。但是,問(wèn)題是緩存數據的數量受到單個(gè)服務(wù)器的內存空間的限制。當集群很大時(shí),需要將緩存更新信息的成本同步到集群中的所有計算機,這是非常昂貴的。因此,這種方案在企業(yè)應用系統中比較常見(jiàn),但在大型應用系統中卻很少網(wǎng)站。
需要緩存的大型網(wǎng)站數據通常非常大,可能需要TB的內存進(jìn)行緩存。此時(shí),需要另一種類(lèi)型分布式緩存,如圖4.10所示Memcached采用集中式緩存集群管理,也稱(chēng)為分布式架構非通信模式。緩存和應用程序是分開(kāi)部署的。緩存系統部署在一組特殊的服務(wù)器上。應用程序通過(guò)一致性Hash等路由算法選擇緩存服務(wù)器遠程訪(fǎng)問(wèn)高速緩存數據,并且緩存服務(wù)器彼此不通信。緩存集群的規模易于實(shí)現擴展,具有良好的可擴展性。
Memcached關(guān)于可伸縮性設計,請參閱本書(shū)第6章。
4. Memcached
Memcached曾經(jīng)是網(wǎng)站分布式緩存的代詞,大量用于網(wǎng)站。它的簡(jiǎn)單設計、卓越的性能、非通信服務(wù)器集群和海量數據可擴展體系結構吸引了架構師。
簡(jiǎn)單通信協(xié)議
遠程通信設計需要考慮兩個(gè)因素,一是通信協(xié)議,即選擇TCP協(xié)議或UDP協(xié)議或HTTp協(xié)議;一種是通信序列化協(xié)議。數據傳輸的兩端必須使用可相互識別的數據序列化方法來(lái)完成通信,如XML、JSON等文本序列化協(xié)議,或者二進(jìn)制序列化協(xié)議如googleprotobufferMemcached使用TCP協(xié)議UDP也支持通信。序列化協(xié)議是一組基于文本的自定義協(xié)議。它非常簡(jiǎn)單,首先是一個(gè)command關(guān)鍵字,然后是一組命令操作數。例如,讀取數據的命令協(xié)議是get(此后,許多NoSQL產(chǎn)品已經(jīng)使用或直接支持該協(xié)議)。
客戶(hù)程序豐富
Memcached通信協(xié)議非常簡(jiǎn)單。只要支持協(xié)議的客戶(hù)端可以與Memcached服務(wù)器進(jìn)行通信,那么Memcached就開(kāi)發(fā)出非常豐富的客戶(hù)端程序,幾乎支持所有主流網(wǎng)站編程語(yǔ)言Java、c/c++/c#Perl、Python、PHP、Ruby等。,因此,它更像是在混合使用多種編程語(yǔ)言網(wǎng)站和Memcached中取水。
高性能網(wǎng)絡(luò )通信
Memcached服務(wù)器的通信模塊基于支持事件觸發(fā)的網(wǎng)絡(luò )通信程序庫libevem。
無(wú)通信的服務(wù)器集群體系結構
如上所述,正是這一特性使得Memcached在JBoss Cache、OSCache等眾多分布式緩存產(chǎn)品中脫穎而出,滿(mǎn)足了網(wǎng)站對海量緩存數據的需求。其客戶(hù)端路由算法一致性Hash已經(jīng)成為數據存儲可伸縮性架構設計的經(jīng)典范例(參見(jiàn)本書(shū)第6章)。事實(shí)上,由于集群中的服務(wù)器之間沒(méi)有通信,集群可以實(shí)現幾乎無(wú)限的線(xiàn)性擴展,這是許多流行大數據技術(shù)的基本架構特征。
近年來(lái),NoSQL產(chǎn)品層出不窮,很多產(chǎn)品在數據持久性、支持復雜數據結構、甚至性能上都優(yōu)于Memcached,但Memcached以其簡(jiǎn)單、穩定、專(zhuān)用的特點(diǎn),在分布式緩存領(lǐng)域仍占有重要地位。
http://ezekroy.com/jianzhanzhishi/1323.html 大型網(wǎng)站分布式緩存架構