xmemcached是最近頻繁出現(xiàn)在JavaEye新聞?lì)l道的熱點(diǎn)詞匯,它就是JavaEye的資深會(huì)員Dennis開(kāi)發(fā)的基于java nio實(shí)現(xiàn)的高性能可擴(kuò)展的memcached客戶(hù)端。
Dennis 在自己實(shí)現(xiàn)的一個(gè)nio框架 http://code.google.com/p/yanf4j/ 的基礎(chǔ)上實(shí)現(xiàn)了xmemcached項(xiàng)目(目前1.1.3是基于yanf4j 0.7.0),xmemcached的序列化機(jī)制使用spymemcached的Transcoder并做了部分改造。 因此xmemcached的性能好于目前其他的Java memcached庫(kù)。
xmemcached的項(xiàng)目主頁(yè)在:http://code.google.com/p/xmemcached/
有關(guān)xmemcached的新聞?wù)埧矗?a target="_blank">http://www.javaeye.com/news/search?query=Xmemcached
歡迎大家推薦更多開(kāi)源項(xiàng)目給我們,支持中國(guó)的開(kāi)源項(xiàng)目發(fā)展,發(fā)站內(nèi)短信給JavaEye管理員或者發(fā)信到webmaster@javaeye.com,謝謝。
Dennis 在自己實(shí)現(xiàn)的一個(gè)nio框架 http://code.google.com/p/yanf4j/ 的基礎(chǔ)上實(shí)現(xiàn)了xmemcached項(xiàng)目(目前1.1.3是基于yanf4j 0.7.0),xmemcached的序列化機(jī)制使用spymemcached的Transcoder并做了部分改造。 因此xmemcached的性能好于目前其他的Java memcached庫(kù)。
xmemcached的項(xiàng)目主頁(yè)在:http://code.google.com/p/xmemcached/
有關(guān)xmemcached的新聞?wù)埧矗?a target="_blank">http://www.javaeye.com/news/search?query=Xmemcached
歡迎大家推薦更多開(kāi)源項(xiàng)目給我們,支持中國(guó)的開(kāi)源項(xiàng)目發(fā)展,發(fā)站內(nèi)短信給JavaEye管理員或者發(fā)信到webmaster@javaeye.com,謝謝。
xmemcached作者Dennis采訪(fǎng) 
JavaEye:Dennis,你可以介紹一下自己為什么要開(kāi)發(fā)xmemcached項(xiàng)目嗎?
Dennis:首先是我在前一家公司有用到memcached,期間我接觸了spymemcached,讀了它的源碼,我對(duì)他的設(shè)計(jì)不是很感冒,它沒(méi)有一個(gè)比較清晰的網(wǎng)絡(luò)層,想改動(dòng)也比較困難。其次,我那時(shí)候剛接觸網(wǎng)絡(luò)編程沒(méi)多久,也需要一個(gè)練手的項(xiàng)目。第三,我對(duì)memcached client有一些自己的想法想實(shí)現(xiàn),而spy不提供。
JavaEye:xmemcached主要有哪些特點(diǎn)呢?能簡(jiǎn)單介紹一下xmemcached嗎?
Dennis:xmemcached是基于java nio的高性能memcached客戶(hù)端, xmemcached主要特性是:
第一:同步API,我覺(jué)的異步的API難以使用,同步模型比較利于客戶(hù)端編程,并且在memcached協(xié)議支持noreply之后,異步API的優(yōu)勢(shì)也沒(méi)有了。
其次:xmemcached也是多線(xiàn)程安全的,這一點(diǎn)跟spy一樣。
第三:xmemcached支持JMX監(jiān)控,支持動(dòng)態(tài)添加、移除memcached節(jié)點(diǎn),這個(gè)特性spy暫未支持。
第四:xmemcached支持設(shè)置節(jié)點(diǎn)的權(quán)重,spy也暫未支持(我要確認(rèn)下,好像最新的支持了)。
第五:xmemcached支持客戶(hù)端的數(shù)據(jù)統(tǒng)計(jì),memcached有提供自身的數(shù)據(jù)統(tǒng)計(jì),但是客戶(hù)端的統(tǒng)計(jì)還需要client來(lái)做,因?yàn)榭蛻?hù)端可能連接多個(gè)節(jié)點(diǎn)。
第六:就是性能上的優(yōu)勢(shì)了,這個(gè)可以看我的測(cè)試報(bào)告: http://xmemcached.googlecode.com/svn/trunk/benchmark/benchmark.html。另外就是支持全部文本協(xié)議和分布,這個(gè)是一個(gè)client必備的,就不說(shuō)了。
JavaEye:能詳細(xì)比較一下xmemcached項(xiàng)目和其他Java memcached client嗎?xmemcached的優(yōu)點(diǎn)是什么?性能表現(xiàn)優(yōu)勢(shì)有多少?
Dennis:首先,基于nio這一點(diǎn),可以在性能上跟傳統(tǒng)基于阻塞io的client拉開(kāi)差距,官方提供的client的性能是比較糟糕的,并且有隱藏的BUG, 其次,xmemcached有一個(gè)特性我想是比較關(guān)鍵的,就是對(duì)于動(dòng)態(tài)增刪節(jié)點(diǎn)的支持,可以做到不停機(jī)而動(dòng)態(tài)地?cái)U(kuò)容, 然后,就是在代碼結(jié)構(gòu)上,我認(rèn)為相對(duì)于spy來(lái)說(shuō)是比較清晰的,借助于yanf4j,將邏輯處理跟網(wǎng)絡(luò)的處理拆分的比較清楚。 另外,我想提供JMX支持這一點(diǎn),是我想出來(lái)的:)
JavaEye:xmemcached未來(lái)的roadmap是什么?
Dennis:在開(kāi)始項(xiàng)目時(shí),我并沒(méi)有明確的目標(biāo),因?yàn)槟菚r(shí)候更多是自?shī)首詷?lè)。不過(guò)最近開(kāi)始有用戶(hù)在真實(shí)的項(xiàng)目中使用,因此多了一份責(zé)任感。 那么,現(xiàn)在一個(gè)比較明確的目標(biāo)是,提供spy之外的另一個(gè)選擇。這本身對(duì)spy也有促進(jìn):),本來(lái)那作者不支持權(quán)重的,現(xiàn)在要加入這一特性了。短期目標(biāo),1.2版本支持二進(jìn)制協(xié)議,memcached 1.4.0正式發(fā)布,二進(jìn)制協(xié)議估計(jì)對(duì)性能有比較大的影響,需要做評(píng)估。長(zhǎng)期目標(biāo)是做一個(gè)易于使用的、高性能的java memcached client。
JavaEye:xmemcached項(xiàng)目誕生多長(zhǎng)時(shí)間了,現(xiàn)在你平均每天花在xmemcached上的時(shí)間是多久?
Dennis:沒(méi)有每天,一般我晚上有空,并且不煩的情況下就去搗鼓,周末比較多,通常都會(huì)在3,4個(gè)小時(shí)以上。平均下來(lái),我想沒(méi)超過(guò)一個(gè)小時(shí),呵呵。
JavaEye:這個(gè)項(xiàng)目從什么時(shí)候開(kāi)始,到現(xiàn)在幾年了?目前xmecached是你一個(gè)人開(kāi)發(fā)?還是有其他contributor?
Dennis:這個(gè)項(xiàng)目開(kāi)始于09年初,具體時(shí)間沒(méi)印象了,現(xiàn)在就我一個(gè)開(kāi)發(fā)者。我很歡迎有興趣的朋友加入。
JavaEye:通過(guò)開(kāi)發(fā)xmemcached,你對(duì)中國(guó)的軟件開(kāi)發(fā)人員做開(kāi)源項(xiàng)目有什么感受和想法嗎?
Dennis:事實(shí)上,我從不敢宣稱(chēng)自己是在做開(kāi)源項(xiàng)目,你看我發(fā)的新聞,blog,從來(lái)沒(méi)有提供開(kāi)源這兩個(gè)字。我更多認(rèn)為是在分享,分享我學(xué)習(xí)到的東西。而我學(xué)習(xí)到的東西,又是來(lái)源于眾多的開(kāi)源項(xiàng)目。(JavaEye:太謙虛了。)認(rèn)為不要一開(kāi)始就抱一個(gè)做什么的想法,這個(gè)項(xiàng)目一開(kāi)始更多是自?shī)首詷?lè),真不啥謙虛。對(duì)開(kāi)源,在路上想了下,我覺(jué)的對(duì)于我這樣的個(gè)人開(kāi)發(fā)者,其實(shí)有很多人是有想法的,想做些東西,就是缺乏行動(dòng),那么如果一開(kāi)始不把目標(biāo)定的那么高,那么明確,先從自?shī)首詷?lè)的目的開(kāi)始,會(huì)更容易堅(jiān)持下去。開(kāi)源并沒(méi)有成為我的負(fù)擔(dān),我覺(jué)的對(duì)我個(gè)人是一個(gè)促進(jìn),你做出來(lái)的東西有人要用,你就要負(fù)責(zé)了。如果說(shuō)負(fù)擔(dān),那是談不上,我是因?yàn)橛袠?lè)趣在里面才做他。
JavaEye:作為一個(gè)JavaEye的老會(huì)員,你對(duì)JavaEye網(wǎng)站有什么建議和意見(jiàn)嗎?
Dennis:我覺(jué)的博客有很大的改進(jìn)余地,內(nèi)容上是最主要的問(wèn)題,真正有價(jià)值的文章很難被頂上來(lái),而標(biāo)題黨和噱頭的文章就很熱門(mén)。功能,主要是博客的樣式可以改進(jìn),確實(shí)不怎么好看,呵呵。我建議可以分區(qū),將八卦和生活類(lèi)與技術(shù)類(lèi)內(nèi)容分開(kāi)。
JavaEye:是的,我們有對(duì)博客內(nèi)容分類(lèi)的開(kāi)發(fā)計(jì)劃,未來(lái)會(huì)實(shí)現(xiàn),非常感謝您的建議,非常感謝您今天接受我們的采訪(fǎng)。謝謝。
Dennis:首先是我在前一家公司有用到memcached,期間我接觸了spymemcached,讀了它的源碼,我對(duì)他的設(shè)計(jì)不是很感冒,它沒(méi)有一個(gè)比較清晰的網(wǎng)絡(luò)層,想改動(dòng)也比較困難。其次,我那時(shí)候剛接觸網(wǎng)絡(luò)編程沒(méi)多久,也需要一個(gè)練手的項(xiàng)目。第三,我對(duì)memcached client有一些自己的想法想實(shí)現(xiàn),而spy不提供。
JavaEye:xmemcached主要有哪些特點(diǎn)呢?能簡(jiǎn)單介紹一下xmemcached嗎?
Dennis:xmemcached是基于java nio的高性能memcached客戶(hù)端, xmemcached主要特性是:
第一:同步API,我覺(jué)的異步的API難以使用,同步模型比較利于客戶(hù)端編程,并且在memcached協(xié)議支持noreply之后,異步API的優(yōu)勢(shì)也沒(méi)有了。
其次:xmemcached也是多線(xiàn)程安全的,這一點(diǎn)跟spy一樣。
第三:xmemcached支持JMX監(jiān)控,支持動(dòng)態(tài)添加、移除memcached節(jié)點(diǎn),這個(gè)特性spy暫未支持。
第四:xmemcached支持設(shè)置節(jié)點(diǎn)的權(quán)重,spy也暫未支持(我要確認(rèn)下,好像最新的支持了)。
第五:xmemcached支持客戶(hù)端的數(shù)據(jù)統(tǒng)計(jì),memcached有提供自身的數(shù)據(jù)統(tǒng)計(jì),但是客戶(hù)端的統(tǒng)計(jì)還需要client來(lái)做,因?yàn)榭蛻?hù)端可能連接多個(gè)節(jié)點(diǎn)。
第六:就是性能上的優(yōu)勢(shì)了,這個(gè)可以看我的測(cè)試報(bào)告: http://xmemcached.googlecode.com/svn/trunk/benchmark/benchmark.html。另外就是支持全部文本協(xié)議和分布,這個(gè)是一個(gè)client必備的,就不說(shuō)了。
JavaEye:能詳細(xì)比較一下xmemcached項(xiàng)目和其他Java memcached client嗎?xmemcached的優(yōu)點(diǎn)是什么?性能表現(xiàn)優(yōu)勢(shì)有多少?
Dennis:首先,基于nio這一點(diǎn),可以在性能上跟傳統(tǒng)基于阻塞io的client拉開(kāi)差距,官方提供的client的性能是比較糟糕的,并且有隱藏的BUG, 其次,xmemcached有一個(gè)特性我想是比較關(guān)鍵的,就是對(duì)于動(dòng)態(tài)增刪節(jié)點(diǎn)的支持,可以做到不停機(jī)而動(dòng)態(tài)地?cái)U(kuò)容, 然后,就是在代碼結(jié)構(gòu)上,我認(rèn)為相對(duì)于spy來(lái)說(shuō)是比較清晰的,借助于yanf4j,將邏輯處理跟網(wǎng)絡(luò)的處理拆分的比較清楚。 另外,我想提供JMX支持這一點(diǎn),是我想出來(lái)的:)
JavaEye:xmemcached未來(lái)的roadmap是什么?
Dennis:在開(kāi)始項(xiàng)目時(shí),我并沒(méi)有明確的目標(biāo),因?yàn)槟菚r(shí)候更多是自?shī)首詷?lè)。不過(guò)最近開(kāi)始有用戶(hù)在真實(shí)的項(xiàng)目中使用,因此多了一份責(zé)任感。 那么,現(xiàn)在一個(gè)比較明確的目標(biāo)是,提供spy之外的另一個(gè)選擇。這本身對(duì)spy也有促進(jìn):),本來(lái)那作者不支持權(quán)重的,現(xiàn)在要加入這一特性了。短期目標(biāo),1.2版本支持二進(jìn)制協(xié)議,memcached 1.4.0正式發(fā)布,二進(jìn)制協(xié)議估計(jì)對(duì)性能有比較大的影響,需要做評(píng)估。長(zhǎng)期目標(biāo)是做一個(gè)易于使用的、高性能的java memcached client。
JavaEye:xmemcached項(xiàng)目誕生多長(zhǎng)時(shí)間了,現(xiàn)在你平均每天花在xmemcached上的時(shí)間是多久?
Dennis:沒(méi)有每天,一般我晚上有空,并且不煩的情況下就去搗鼓,周末比較多,通常都會(huì)在3,4個(gè)小時(shí)以上。平均下來(lái),我想沒(méi)超過(guò)一個(gè)小時(shí),呵呵。
JavaEye:這個(gè)項(xiàng)目從什么時(shí)候開(kāi)始,到現(xiàn)在幾年了?目前xmecached是你一個(gè)人開(kāi)發(fā)?還是有其他contributor?
Dennis:這個(gè)項(xiàng)目開(kāi)始于09年初,具體時(shí)間沒(méi)印象了,現(xiàn)在就我一個(gè)開(kāi)發(fā)者。我很歡迎有興趣的朋友加入。
JavaEye:通過(guò)開(kāi)發(fā)xmemcached,你對(duì)中國(guó)的軟件開(kāi)發(fā)人員做開(kāi)源項(xiàng)目有什么感受和想法嗎?
Dennis:事實(shí)上,我從不敢宣稱(chēng)自己是在做開(kāi)源項(xiàng)目,你看我發(fā)的新聞,blog,從來(lái)沒(méi)有提供開(kāi)源這兩個(gè)字。我更多認(rèn)為是在分享,分享我學(xué)習(xí)到的東西。而我學(xué)習(xí)到的東西,又是來(lái)源于眾多的開(kāi)源項(xiàng)目。(JavaEye:太謙虛了。)認(rèn)為不要一開(kāi)始就抱一個(gè)做什么的想法,這個(gè)項(xiàng)目一開(kāi)始更多是自?shī)首詷?lè),真不啥謙虛。對(duì)開(kāi)源,在路上想了下,我覺(jué)的對(duì)于我這樣的個(gè)人開(kāi)發(fā)者,其實(shí)有很多人是有想法的,想做些東西,就是缺乏行動(dòng),那么如果一開(kāi)始不把目標(biāo)定的那么高,那么明確,先從自?shī)首詷?lè)的目的開(kāi)始,會(huì)更容易堅(jiān)持下去。開(kāi)源并沒(méi)有成為我的負(fù)擔(dān),我覺(jué)的對(duì)我個(gè)人是一個(gè)促進(jìn),你做出來(lái)的東西有人要用,你就要負(fù)責(zé)了。如果說(shuō)負(fù)擔(dān),那是談不上,我是因?yàn)橛袠?lè)趣在里面才做他。
JavaEye:作為一個(gè)JavaEye的老會(huì)員,你對(duì)JavaEye網(wǎng)站有什么建議和意見(jiàn)嗎?
Dennis:我覺(jué)的博客有很大的改進(jìn)余地,內(nèi)容上是最主要的問(wèn)題,真正有價(jià)值的文章很難被頂上來(lái),而標(biāo)題黨和噱頭的文章就很熱門(mén)。功能,主要是博客的樣式可以改進(jìn),確實(shí)不怎么好看,呵呵。我建議可以分區(qū),將八卦和生活類(lèi)與技術(shù)類(lèi)內(nèi)容分開(kāi)。
JavaEye:是的,我們有對(duì)博客內(nèi)容分類(lèi)的開(kāi)發(fā)計(jì)劃,未來(lái)會(huì)實(shí)現(xiàn),非常感謝您的建議,非常感謝您今天接受我們的采訪(fǎng)。謝謝。
Dennis介紹 
Dennis是Xmemcached 項(xiàng)目的創(chuàng)立者 dennis_zane,他做了大概4年JAVA開(kāi)發(fā),熟悉并發(fā)和網(wǎng)絡(luò),對(duì)技術(shù)很有熱情,目前在國(guó)內(nèi)著名大型網(wǎng)絡(luò)公司就職。他剛做了爸爸,有一個(gè)6個(gè)半月大的兒子,他的頭像就是他的可愛(ài)兒子。除了技術(shù),他還是國(guó)際米蘭球迷,喜歡看電影和打游戲,自稱(chēng)宅男。
dennis_zane:
訪(fǎng)問(wèn) dennis_zane 的博客:http://dennis-zane.javaeye.com/
dennis_zane:
訪(fǎng)問(wèn) dennis_zane 的博客:http://dennis-zane.javaeye.com/
安徽新華電腦學(xué)校專(zhuān)業(yè)職業(yè)規(guī)劃師為你提供更多幫助【在線(xiàn)咨詢(xún)】

熱門(mén)精品專(zhuān)業(yè)

