国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Memcached在彩印SNS網(wǎng)站上的應(yīng)用*

2012-06-27 05:50涂婷婷王晶王純
關(guān)鍵詞:彩印內(nèi)存客戶端

涂婷婷,王晶,王純

(1 北京郵電大學(xué)網(wǎng)絡(luò)與交換技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,北京 100876;2 東信北郵信息技術(shù)有限公司,北京 100191)

Memcached在彩印SNS網(wǎng)站上的應(yīng)用*

涂婷婷1,2,王晶1,2,王純1,2

(1 北京郵電大學(xué)網(wǎng)絡(luò)與交換技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,北京 100876;2 東信北郵信息技術(shù)有限公司,北京 100191)

隨著彩印業(yè)務(wù)的不斷發(fā)展壯大,彩印SNS(Social Networking Services)網(wǎng)站用戶訪問(wèn)量逐漸增多,對(duì)服務(wù)器的性能要求也越來(lái)越高。本文主要介紹了在SSH(Spring+Struts+Hibernate)框架下應(yīng)用memcached緩存技術(shù)對(duì)彩印SNS網(wǎng)站進(jìn)行改造,通過(guò)減少數(shù)據(jù)庫(kù)訪問(wèn)數(shù),加快Web請(qǐng)求處理能力。

SNS;Memcached;SSH; Maven

1 引言

隨著彩印業(yè)務(wù)的不斷發(fā)展壯大,彩印SNS(Social Networking Services)網(wǎng)站的用戶訪問(wèn)量逐漸增多,數(shù)據(jù)庫(kù)的負(fù)擔(dān)越來(lái)越重,網(wǎng)站響應(yīng)速度也越來(lái)越慢,用戶體驗(yàn)隨即變差。為了增強(qiáng)用戶體驗(yàn),提高網(wǎng)站響應(yīng)速度,應(yīng)用緩存不失為一種好的解決辦法,而近年來(lái),隨著內(nèi)存容量的飛速擴(kuò)張和價(jià)格的不斷下降, 使用內(nèi)存緩存[1]開(kāi)始成為一種趨勢(shì)和可能。

根據(jù)操作系統(tǒng)經(jīng)典二八理論,20%的數(shù)據(jù)通常在80%的時(shí)間內(nèi)被訪問(wèn),如果能夠把這20%的頻繁訪問(wèn)的數(shù)據(jù)在第一次訪問(wèn)時(shí)直接存入內(nèi)存,那么再次訪問(wèn)時(shí)可以直接從內(nèi)存中獲取數(shù)據(jù),這顯然比重新訪問(wèn)數(shù)據(jù)庫(kù)要快得多。Memcached作為一款高性能的分布式內(nèi)存緩存服務(wù)器,可以將數(shù)據(jù)庫(kù)查詢結(jié)果緩存至內(nèi)存,通過(guò)減少數(shù)據(jù)庫(kù)訪問(wèn)次數(shù),從而提高動(dòng)態(tài)Web應(yīng)用的速度、提高可擴(kuò)展性。

2 Memcached介紹

Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric 為首開(kāi)發(fā)的一款軟件。它作為高速運(yùn)行的分布式緩存服務(wù)器,具有協(xié)議簡(jiǎn)單、基于Libevent的事件處理、內(nèi)置內(nèi)存存儲(chǔ)方式三大特點(diǎn)。Memcached協(xié)議簡(jiǎn)單,其服務(wù)器客戶端通信并不使用復(fù)雜的XML等格式,而是使用簡(jiǎn)單的基于文本行的協(xié)議; Memcached使用Libevent庫(kù),它將Linux的Epoll、BSD類操作系統(tǒng)的Kqueue等事件處理功能封裝成統(tǒng)一的接口,即使對(duì)服務(wù)器的連接數(shù)增加,也能發(fā)揮O(1)的性能;Memcached將保存的數(shù)據(jù)存儲(chǔ)在內(nèi)置的內(nèi)存存儲(chǔ)空間中,由于數(shù)據(jù)僅存在于內(nèi)存中,因此重啟Memcached、重啟操作系統(tǒng)會(huì)導(dǎo)致全部數(shù)據(jù)消失。另外,內(nèi)容容量達(dá)到指定值之后,就基于LRU(Least Recently Used 近期最少使用)算法自動(dòng)刪除使用很少的緩存,因此, Memcached并沒(méi)有過(guò)多考慮數(shù)據(jù)的永久性問(wèn)題[2]。

2.1 Memcached內(nèi)存管理方式

Memcached采用了Slab Allocator的機(jī)制分配、管理內(nèi)存,通過(guò)在內(nèi)存里維護(hù)一個(gè)統(tǒng)一的、巨大的散列表,用來(lái)存儲(chǔ)各種格式的數(shù)據(jù)。其基本原理是將分配的內(nèi)存分割成各種尺寸的塊(chunk),并把尺寸相同的塊分成組Slab(chunk的集合),如圖1所示。

圖1 Slab Allocator的構(gòu)造圖

2.2 Memcached緩存記錄的原理

默認(rèn)分配給組的內(nèi)存大小為1MB,其中塊的大小可以根據(jù)將存入緩存的最小字節(jié)數(shù)而定。Memcached根據(jù)收到的將要緩存數(shù)據(jù)的大小,選擇最適合數(shù)據(jù)大小的組(如圖2所示),Memcached中保存著組內(nèi)空閑塊的列表,根據(jù)該列表選擇塊,以便最好的利用內(nèi)存空間,減少空間碎片[3]。

圖2 存入塊的選擇

Memcached會(huì)給存入緩存里的每個(gè)記錄加上一個(gè)時(shí)間戳,但其內(nèi)部不會(huì)監(jiān)視記錄是否過(guò)期,而是在get時(shí)查看記錄的時(shí)間戳,檢查記錄是否過(guò)期。當(dāng)內(nèi)存空間不足時(shí),Memcached會(huì)優(yōu)先使用已超時(shí)的記錄的空間,如果空間仍然不足,會(huì)通過(guò)LRU機(jī)制來(lái)整理空間,即刪除 “最近最少使用”的記錄,并將其空間分配給新的記錄,以此解決內(nèi)存不足的問(wèn)題。

3 Memcached應(yīng)用在彩印SNS上的實(shí)現(xiàn)

Memcached作為一款高性能的分布式內(nèi)存緩存服務(wù)器可以將數(shù)據(jù)庫(kù)查詢結(jié)果緩存至內(nèi)存,通過(guò)減少數(shù)據(jù)庫(kù)訪問(wèn)次數(shù), 提高動(dòng)態(tài)Web應(yīng)用的速度、提高可擴(kuò)展性,以下主要介紹如何在彩印SNS中應(yīng)用Memcached。

3.1 架構(gòu)方案

彩印SNS網(wǎng)站設(shè)計(jì)采用當(dāng)前主流框架SSH,其中Spring負(fù)責(zé)業(yè)務(wù)層管理,即Service(或 Manager),為Action提供統(tǒng)一的調(diào)用接口并封裝持久層的 DAO,并且還對(duì)Javabean進(jìn)行統(tǒng)一的管理,同時(shí)集成Hibernate;Hibernate作為數(shù)據(jù)持久化層 , 是一種對(duì)象、關(guān)系的映射工具,提供了從Java類到數(shù)據(jù)表的映射,也提供了數(shù)據(jù)查詢和恢復(fù)等機(jī)制,把對(duì)數(shù)據(jù)庫(kù)的直接操作, 轉(zhuǎn)換為對(duì)持久對(duì)象的操作; Struts負(fù)責(zé)Web層,接收網(wǎng)頁(yè)中表單提交的數(shù)據(jù),通過(guò)Action進(jìn)行處理,進(jìn)而將處理結(jié)果返回給頁(yè)面。

采用Memcached作為緩存,位于服務(wù)器及數(shù)據(jù)庫(kù)之間,Action接收頁(yè)面請(qǐng)求進(jìn)行處理時(shí),先查詢結(jié)果是否在緩存中,如果在,則直接使用緩存,否則查詢數(shù)據(jù)庫(kù),將結(jié)果返回的同時(shí)將結(jié)果寫入緩存[4],過(guò)程如圖3所示。

3.2 Memcached服務(wù)端的安裝及啟動(dòng)

下載Memcached for Window版Memcached-1.2.4-Win32-Preview-20080309_bin.zip,解壓文件,進(jìn)入C:WindowsSystem32,以管理員身份運(yùn)行cmd.exe,輸入memcached.exe -d install即安裝成功,在Windows服務(wù)中即可看到Memcached Server服務(wù);cmd中輸入memcached.exe -d start即啟動(dòng)服務(wù),輸入telnet 127.0.0.1 11211,輸入stats查看詳細(xì)信息,如果有信息輸出,說(shuō)明連接成功,quit退出。

圖3 請(qǐng)求訪問(wèn)過(guò)程

3.3 Memcached Java 客戶端的安裝

由于目前Memcached Java客戶端沒(méi)有官方的jar包可以配置到Maven中直接依賴,因此需要手動(dòng)將其安裝到本地Maven庫(kù)。編寫java-memcached-2.6.6.pom.xml文件,在pom文件里面指明生成的jar包的groupId、artifactId及依賴的三個(gè)包slf4j-simple、slf4j-api、commons-pool,然后將java memcached client的jar包和pom文件一起安裝,通過(guò)命令mvn install:install-file -Dfile=D:/ software/java_memcached-release_2.6.6/java_ memcached-release_2.6.6.jar-DpomFile=D:/ software/java_memcached-release_2.6.6/javamemcached-2.6.6.pom.xml,將memcached client的jar包安裝到本地庫(kù)中。

3.4 相關(guān)配置文件

3.4.1 Maven的配置

在底層core里的pom中添加memcached依賴,如下所示:

以上配置后,即可使用memcached客戶端了[2]。

3.4.2 Spring 配置

新建applicationContext-memcache.xml文件,對(duì)memcached服務(wù)端進(jìn)行配置,指定其服務(wù)器地址和端口,memcached安裝時(shí)默認(rèn)端口為11211,地址即為本機(jī)地址,如下:

同時(shí)在applicationContext-service.xml中加入bean的配置,如下:

其中memClient指明依賴的memcached 客戶端(即先前配置到本地庫(kù)中的jar包),memcachedService是一個(gè)接口,包含memcached的4個(gè)基本方法add,delete, set, get,并調(diào)用MemCachedClient的方法對(duì)其進(jìn)行實(shí)現(xiàn)。

3.4.3 資源文件的加載

配置完畢后,還需要在web.xml中加入該配置文件:

以上配置完畢后,可以直接在Action里面調(diào)用memClient的get,set方法即可。

3.5 應(yīng)用Memcached前后性能比較

將Memcached配置在服務(wù)器與數(shù)據(jù)庫(kù)之間,頁(yè)面請(qǐng)求時(shí),相應(yīng)的action進(jìn)行處理,第一次請(qǐng)求時(shí),查詢數(shù)據(jù)庫(kù),將結(jié)果返回給用戶,同時(shí)Memcached將頁(yè)面?zhèn)鱽?lái)的參數(shù)組裝成string作為key,將返回給頁(yè)面的結(jié)果組裝成string作為value通過(guò)set方法存入內(nèi)存,下次相同的請(qǐng)求來(lái)臨時(shí),服務(wù)器會(huì)先判斷該key是否在緩存中,如果在,直接從緩存通過(guò)get取得結(jié)果返回,否則查詢數(shù)據(jù)庫(kù),程序可以通過(guò)System.currentTime Millis()記錄兩次請(qǐng)求返回的時(shí)間,輸出如下:

可以發(fā)現(xiàn),兩次相同的請(qǐng)求,第二次請(qǐng)求時(shí)時(shí)間明顯減少了很多。

通過(guò)apache自帶的ab(ApacheBench)壓力測(cè)試工具對(duì)請(qǐng)求進(jìn)行壓力測(cè)試,該工具可以同時(shí)模擬多個(gè)并發(fā)請(qǐng)求,測(cè)試多個(gè)請(qǐng)求并發(fā)來(lái)臨時(shí)服務(wù)器處理時(shí)間,首先通過(guò)cmd進(jìn)入apache目錄如D:/software/apache 2.2/bin ,命令為ab -c 請(qǐng)求數(shù) -n 線程數(shù) 網(wǎng)址/ ,如輸入ab c 10 n 10 http://localhost: 8080/music/ api/getRecoma ndList.do?lastModifyTime=0/,其中第一個(gè)10表示同時(shí)有10個(gè)請(qǐng)求,第二個(gè)10表示10個(gè)進(jìn)程并發(fā)執(zhí)行,后面的網(wǎng)址為目標(biāo)網(wǎng)址,網(wǎng)址后加“/”表示啟動(dòng)ab, 實(shí)驗(yàn)結(jié)果如表1所示。

由表1可以看出,應(yīng)用Memcached,當(dāng)大量請(qǐng)求并發(fā)來(lái)臨時(shí),服務(wù)器執(zhí)行速度明顯加快。

表1 應(yīng)用Memcached前后性能比較

4 結(jié)束語(yǔ)

本文主要介紹了在SSH框架下將Memcached作為緩存服務(wù)器應(yīng)用于彩印SNS網(wǎng)站的過(guò)程,針對(duì)應(yīng)用前后分別進(jìn)行了壓力測(cè)試,發(fā)現(xiàn)當(dāng)大量請(qǐng)求并發(fā)來(lái)臨時(shí),應(yīng)用Memcached緩存后服務(wù)器執(zhí)行速度明顯加快。將Memcached部署在服務(wù)器與數(shù)據(jù)庫(kù)之間,在很大程度上減輕了數(shù)據(jù)庫(kù)的訪問(wèn)壓力,有效提高了數(shù)據(jù)訪問(wèn)的速度。

[1] Yang B, Liao J X, Zhu X M. Two-level proxy: the media streaming cache architecture for GPRS mobile network[A]. Proceedings of International Conference on Information Networking[C], Sendai,Japan.2006.

[2] 長(zhǎng)野雅廣, 前坂徹. Memcached全面剖析[EB/OL]. http://tech. idv2.com/2008/08/17/memcachepdf

[3] Memcached官方站點(diǎn)[EB/OL]. http://www.danga.com/memcached/

[4] 段鵬, 張寒云, 何磊. 基于Spring和Memcached的iBATIS二級(jí)緩存的研究與應(yīng)用[J]. 云南民族大學(xué)學(xué)報(bào):自然科學(xué)版, 2009,18(4):375-378.

我院與大唐無(wú)線創(chuàng)新中心舉辦TD—LTE無(wú)線技術(shù)深度研討會(huì)

2012年8月9~10日,我院技術(shù)部與大唐無(wú)線創(chuàng)新中心在北京舉辦為期兩天的“TD-LTE無(wú)線技術(shù)深度研討會(huì)”。我院蔣遠(yuǎn)副院長(zhǎng)出席并致辭,高度評(píng)價(jià)了大唐電信在TDLTE規(guī)模試驗(yàn)網(wǎng)的優(yōu)秀表現(xiàn)以及在TD-LTE產(chǎn)業(yè)發(fā)展上做出的巨大貢獻(xiàn),并希望雙方在TD-LTE網(wǎng)規(guī)/網(wǎng)優(yōu)等網(wǎng)絡(luò)技術(shù)創(chuàng)新方面加強(qiáng)研討和合作。

院副總工程師張玉勝、院技術(shù)部總經(jīng)理兼研究所所長(zhǎng)高鵬,院本部無(wú)線所所長(zhǎng)湯利民、網(wǎng)優(yōu)所陳欣偉,無(wú)線所、網(wǎng)優(yōu)所、研究所及來(lái)自十三家分院的部分領(lǐng)導(dǎo)和技術(shù)骨干共計(jì)70余名代表參加研討。

研討會(huì)上,我院專家分別詳細(xì)介紹了TD-LTE規(guī)模試驗(yàn)網(wǎng)情況、TD-LTE網(wǎng)絡(luò)規(guī)劃/優(yōu)化方法、創(chuàng)新方案及建設(shè)指導(dǎo)意見(jiàn)、規(guī)范等內(nèi)容;大唐無(wú)線創(chuàng)新中心總經(jīng)理王映民博士就TD-LTE系統(tǒng)技術(shù)做了專題報(bào)告;創(chuàng)新中心專家分別就TDLTE系統(tǒng)設(shè)備與芯片、終端等產(chǎn)業(yè)發(fā)展關(guān)鍵問(wèn)題、TD-LTE技術(shù)標(biāo)準(zhǔn)、預(yù)研的研究進(jìn)展及TD-LTE未來(lái)演進(jìn)的方向等專題做了精彩演講。

會(huì)上,蔣遠(yuǎn)副院長(zhǎng)詳細(xì)詢問(wèn)了TD-LTE終端與芯片發(fā)展存在的問(wèn)題。同時(shí)指出終端和芯片涉及多種因素和眾多環(huán)節(jié),終端廠商應(yīng)結(jié)合客戶需求和運(yùn)營(yíng)需要,在設(shè)計(jì)和應(yīng)用時(shí)有所側(cè)重,避免面面俱到。雙方與會(huì)專家就其他技術(shù)問(wèn)題展開(kāi)熱烈討論,達(dá)到了深度研討的效果。

會(huì)后,蔣遠(yuǎn)副院長(zhǎng)與到場(chǎng)專家一起,親自參加了研討效果測(cè)試。不但極大鼓舞了大家鉆研學(xué)習(xí)TD-LTE的熱情,同時(shí)也鞏固、檢驗(yàn)了研討會(huì)的學(xué)習(xí)效果。

Using Memcached in call signature service SNS Web site

TU Ting-ting1,2, WANG Jing1,2, WANG Chun1,2
(1 State Key Laboratory of Networking and Switching Technology, Beijing University of Posts and Telecommunications, Beijing 100876, China; 2 EBUPT Information Technology Co. Ltd., Beijing 100191, China)

With the rapid development of the call signature service of China Mobile, more and more users visit its SNS(Social Networking Services) Web site. It requires Web service with higher speed and better performance. This article introduced the reconstruction of the SNS Web site under the SSH(Spring+Struts+Hibernate) framework with the Memcached caching technology. It improved Web application performance through reducing the database access.

SNS; Memcached; SSH; maven

TN929.5

A

1008-5599(2012)09-0086-05

2012-08-28

國(guó)家自然科學(xué)基金(No. 61072057,61101119,61121001,60902051);長(zhǎng)江學(xué)者和創(chuàng)新團(tuán)隊(duì)發(fā)展計(jì)劃資助(No. IRT1049);國(guó)家科技重大專項(xiàng)(No. 2011ZX03002-001-01,移動(dòng)互聯(lián)網(wǎng)總體架構(gòu)研究)。

猜你喜歡
彩印內(nèi)存客戶端
上海慶豐彩印有限公司
如何看待傳統(tǒng)媒體新聞客戶端的“斷舍離”?
“春夏秋冬”的內(nèi)存
縣級(jí)臺(tái)在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶端
孵化垂直頻道:新聞客戶端新策略
大樞紐 云平臺(tái) 客戶端——中央人民廣播電臺(tái)的探索之路
基于移動(dòng)智能網(wǎng)基礎(chǔ)通信業(yè)務(wù)的彩印系統(tǒng)構(gòu)建研究
彩印業(yè)務(wù)實(shí)現(xiàn)方案分析
彩印威尼斯
內(nèi)存搭配DDR4、DDR3L還是DDR3?
侯马市| 漾濞| 昌平区| 台北县| 雷波县| 东至县| 松溪县| 新竹县| 揭阳市| 新巴尔虎右旗| 兰溪市| 永济市| 安乡县| 裕民县| 同江市| 肥城市| 桑植县| 平阴县| 高要市| 揭东县| 苍山县| 柘荣县| 浏阳市| 肥西县| 凉城县| 饶阳县| 元谋县| 舒城县| 木里| 社旗县| 城步| 阜宁县| 临泽县| 临高县| 高雄县| 浦城县| 孝昌县| 喀什市| 邵阳县| 化州市| 沅陵县|