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

dennis_zane:

訪問 dennis_zane 的博客:http://dennis-zane.javaeye.com/
安徽新華電腦學(xué)校專業(yè)職業(yè)規(guī)劃師為你提供更多幫助【在線咨詢】