2009年3月11日
摘要: 這本書就是之前blog上寫的《構建高性能的大型分布式Java應用》一書,書稿完成后,覺得本書更多的仍然是偏向講解分布式Java應用的基礎知識,以及我個人工作經驗的一些分享,于是改名成了《分布式Java應用:基礎與實踐》,本書目前已送往印刷廠印刷,下面是目前的一些關于本書的信息:
1、封面和目錄
http://bluedavy.com/?p=55
2、序
http://bluedavy.com/?p=60
3、豆瓣上書的信息
http://book.douban.com/subject/4848587/
閱讀全文
摘要: 本PPT只介紹了在Sun Hotspot V 1.6.0中:
1、內存結構;
2、內存分代,如何控制代大??;
3、可用的GC,每種GC對于參數的不同使用,例如SurvivorRatio、MaxTenuringThreshold等;每種GC不同的內存分配策略和回收策略,但不涉及具體算法是如何實現的;
4、GC是怎么觸發的,日志是什么含義;
5、怎么使用上面的GC;
6、GC Tuning,簡單介紹了一些常見的GC調優的目標時的瓶頸、可采用的方法等。
閱讀全文
摘要: 網絡訪問時,通常要做超時控制,要實現的好其實還是有些挑戰的,歡迎大家圍觀code show,并提供你的改進代碼,:):http://bluedavy.com/?p=39
閱讀全文
摘要: 本次交流在4月24日圓滿完成,主題為關于JVM的那些事,撒迦@rednaxelafx給大家做了一個長達四小時的精彩分享,涵蓋了javac、解釋執行、c1、c2編譯執行方面的知識點。
由于視頻太大,感興趣的同學請從以下地址下載,自行觀看,:),也歡迎看完后在twitter上,或在這里來進行討論,blog遷移到了bluedavy.com,地址在此:http://bluedavy.com/?p=36
閱讀全文
摘要: 摘自我那本6月份要上市的,但目前名字還沒完全確定的書,由于書中涵蓋的更多的為構建高性能分布式Java應用所需要的基礎知識,也許改成了《通往高性能分布式Java應用之路》,主要是闡述下為什么大型應用需要SOA,以及eBay的例子,blog全文請見:http://bluedavy.com/?p=30
閱讀全文
摘要: blog已轉移至bluedavy.com,感興趣的同學可以移步至此:http://bluedavy.com/?p=27
閱讀全文
摘要: 3月30日Twitter在其engineering blog上寫了一篇Unicorn Power的blog:http://engineering.twitter.com/2010/03/unicorn-power.html,寫的挺經典的,按我的理解來講下這篇blog吧,如有錯誤,請幫忙糾正,:),blog已遷移至bluedavy.com,感興趣的同學可以訪問這個地址來查看全文:http://bluedavy.com/?p=25
閱讀全文
摘要: 由于blog開始轉移到bluedavy.com,感興趣的同學可到此圍觀:http://bluedavy.com/?p=23,本篇blog從看一個超市發展的過程中,收銀碰到的問題以及解決方案來闡述互聯網的技術。
閱讀全文
摘要: blog開始轉移到www.bluedavy.com,因此感興趣的同學請訪問http://bluedavy.com/?p=18
閱讀全文
摘要: 由阿里云龍浩同學牽頭的杭州程序員圓桌交流,第一期主題為并發編程,把自己的經驗也分享下,在活動結束后會公開此次交流的資料,具體PPT請見文中。
閱讀全文
摘要: 在QCon SF 2009的SOA分會場上,eBay的架構師講了一個SOA @ eBay的PPT,正好和我的工作有很多的交叉點,于是比較認真的看了下這個PPT,感興趣的同學可以從這里下載:http://qconsf.com/sf2009/file?path=/qcon-sanfran-2009/slides/SastryMalladi_SOAEBayHowIsItAHit.pdf,在這個PPT中可以看到eBay對于SOA的看法以及他們目前的做法,自己也是做這方面工作的,就在這篇blog中介紹下這個PPT以及自己對于SOA的一些看法。
閱讀全文
摘要: 本篇blog將講述coroutine的一些背景知識,以及在Java中如何使用Coroutine,包括一個簡單的benchmark對比,希望能借助這篇blog讓大家了解到更多在java中使用coroutine的方法,本篇blog的PDF版本可從此下載:http://www.bluedavy.com/open/UseCoroutineInJava.pdf
閱讀全文
摘要: 公歷的2009已經過去,2010來臨,不免俗的也對自己個人2009做一次回顧,同時對自己的2010做一次展望,希望自己的2010能過的更加精彩。
閱讀全文
摘要: In product env,we always need to monitor gc trend or tunning gc based on gc trend,before sun jdk 1.6+,we can use GCViewer to visualize gc log to see gc trend,but it not support jdk 1.6+,so I write a free open source tool to visualize gc log produced by sun jdk 1.6+,now V 0.2 release,If you need,pls download from http://code.google.com/p/gclogviewer/.
閱讀全文
摘要: In this blog,I'll test the coroutine supported on jvm,now famous is scala actor & kilim,this blog show the program reliazed with scala actor/kilim/java,let's compare these three program performance.
閱讀全文
摘要: 在HPTS大會上,Randy Shoup放出的eBay的PPT有所改變,在原有的5個Architectural Lessons上又增加了5個lesson,從這也可以一定程度的看出當訪問量、數據量、功能不斷上漲后,碰到的技術問題也將繼續發展,想必這也是eBay增加5個lessons的原因,eBay在技術方面的發展對很多互聯網公司都有一些參考意義,畢竟它已經經歷過了國內很多網站目前的階段甚至是幾年后的階段,在本篇blog中就完整的來看看eBay的這10個lessons、eBay的應對策略以及我個人的一些推測。
閱讀全文
摘要: 本書預計共八章,目前完成五章,由于本書需要涵蓋Java分布式應用、高性能java應用、可伸縮的java應用以及高可用java應用四方面的知識點,編寫的難度不小,因此在此先行放出目錄和樣章,希望能夠得到大家的一些反饋,以保證本書的質量,目錄&樣章下載地址為:http://www.bluedavy.com/opendoc/bookpreview.pdf
閱讀全文
摘要: 非常強烈的推薦下BTrace這個工具,用了后不得不說太強大了,BTrace簡單來說,就是能在不改動當前程序的情況下,運行時的去監控Java程序的執行狀況,例如可以做到內存狀況的監控、方法調用的監控等等,官方網站上有非常多詳細的例子,我不說太多,只在下面舉一個簡單的例子來說明它的作用,BTrace的User Guide請見:http://kenai.com/projects/btrace/pages/UserGuide。
閱讀全文
摘要: 摘自《構建高性能的大型分布式Java應用》第六章,感興趣的同學們可以看看。
GC策略在G1還沒成熟的情況下,目前主要有串行、并行和并發三種,對于大內存的應用而言,串行的性能太低,因此使用到的主要是并行和并發兩種,具體這兩種GC的策略在深入JVM章節中已講解, 并行和并發GC的策略通過-XX:+UseParallelGC和-XX:+UseConcMarkSweepGC來指定,還有一些細節的配置參數用來配置策略的執行方式,例如:-XX:ParallelGCThreads、-XX:CMSInitiatingOccupancyFraction等,新生代對象回收只可選擇并行,在此就舉例來看看兩種GC策略在Full GC時的具體表現狀況。
閱讀全文
摘要: 和清華學子做了一次關于OSGi的交流,在此公開下這個PPT,:),這個PPT是我寫的最長的一個OSGi PPT,涵蓋的內容主要是OSGi標準方面的知識以及Equinox使用的一些知識,感興趣的同學可以下載下: http://www.bluedavy.com/opentopic/OSGi20094qh.pptx
閱讀全文
摘要: 架構師接龍是《程序員》雜志最近推出的一個活動,活動方式為:每期一個提問嘉賓,一個回答嘉賓,并由回答嘉賓提出新的問題給下期的架構師,形成接龍,之前第一期是支付寶的馮大輝提問,騰訊的研發總監王速瑜回答,我參與的是第二期,這期會登在《程序員》0909期上,內容轉帖如下,原帖為程序員官方上的:http://www.programmer.com.cn/727/,呵呵,都只是個人的片面理解做出的回答,也歡迎大家在此帖中繼續討論,:)
閱讀全文
摘要: 這篇文章中總結了一些構建可伸縮性系統的最佳實踐,總結的不錯,于是翻譯了下,原文在此:http://akfpartners.com/techblog/2009/08/11/scalability-best-practices/,翻譯內容如下。
閱讀全文
摘要: 在將Hessian從3.0.13升級到3.2.0時碰到兩個bug和一個ClassLoader處理策略的改變的問題,在此記錄下,希望能為使用Hessian 3.2.0的同學們提供點幫助,避免再走同樣的彎路。
閱讀全文
摘要: 幾年以來,eBay在幾個不同的大會上先后分享過幾次關于eBay技術的PPT,在這篇blog中,就以這些PPT來以旁觀者的角度分析下eBay的技術發展歷程,不論eBay現在的業績如何,不可否認,他們的技術還是挺強的,因此還是值得學習,eBay的整個技術發展歷程從一定程度上來說可以認為是互聯網公司的典型技術發展歷程,基本上各家互聯網公司都在走著類似的路線,只是各家選擇的語言不同、具體的實現方案不同、細節不同,當然,思路是一方面,實現又是另外一方面,只有兩者結合才能實現一個高可用、高性能和高并發的有海量數據的系統。
閱讀全文
摘要: 這本書的名號有:國內第一本OSGi中文書,全球第二本OSGi技術書,少數的能夠領先于英文技術原創書出版的中文書籍,這些都乃虛名,最重要的是希望這本書能真正的為希望了解、學習或深入掌握OSGi;希望了解、學習如何編寫模塊化、動態化的Java應用的Java技術人員提供一些幫助,那么也就不枉這本書的出版了,很榮幸能參與這本書的編寫,圓了自己兩年前出一本OSGi書的夢,下面放上一些本書的封面的圖片show下。
閱讀全文
摘要: Equinox的設計非常經典,其在擴展方面提供了很多的支持,同樣包括類加載方面的控制,除了通過標準的org.osgi.framework.bootdelegation以及equinox提供的osgi.parentClassLoader這兩個屬性來簡單的控制類加載之外,還可通過實現ClassLoaderDelegateHook來更為靈活的控制類加載。
閱讀全文
摘要: 很不容易,經過兩個多月兩個人的努力,終于完成了《OSGi原理與最佳實踐》一書的草稿,目前正在review過程,預計將在7月底上市,而由于國外的那本《OSGi in action》將出版時間推遲到11月了,《OSGi原理與最佳實踐》這本書也將成為全球第二本OSGi的書籍(很遺憾,德國之前出版了第一本),:),現將本書的目錄公布如下,上市的書也許會稍有改動,但應該會大體一致。
閱讀全文
摘要: 這是Lifecycle Layer中的最大改進,在之前的規范中只是簡單的描述了下框架的啟動和關閉,在制定了這個規范后,以后無論是啟動equinox還是felix,都可采用同樣的方式啟動,詳細的來看看,本文摘自《OSGi原理與最佳實踐》。
閱讀全文
摘要: 本文內容同樣摘自《OSGi原理與最佳實踐》,在之前的blog中也摘選了部分內容分析了Equinox的動態化,在這里再試驗下Felix的動態化,關注點為:“即插即用”、“熱部署”、“即刪即無”,看下Felix在這幾方面的表現和Equinox有什么不同。
閱讀全文
摘要: 對于采用OSGi來做系統的人而言,ClassLoader的問題必然是頭號需要解決的問題,如果又是個需要遠程通訊的OSGi應用的話,那么反序列化的classloader問題幾乎可以肯定是會碰到的,來看看在如今流行的兩種序列化、反序列化協議:java/hessian中如何使用自定義的classloader。
java/hessian并不提供直接的傳入ClassLoader類來改變反序列化時采用的ClassLoader,hessian采用的為使用當前線程的上下文ClassLoader來加載反序列化的類,java則采用堆棧上最近的一個ClassLoader類來加載,可以認為就是調用類所在的ClassLoader來加載,但在OSGi應用中,通常采用以上默認的行為來反序列化加載類是會出問題的,因此需要采用自定義的。
閱讀全文
摘要: 對于想使用Equinox來構建OSGi應用的同學們而言,掌握Equinox是如何加載Bundle中的Class無疑是相當重要的,這樣在碰到各類ClassNotFoundException的時候也就有底了,否則可能出現的ClassNotFoundException會多的讓你非常的頭疼,本文提取自《OSGi原理與最佳實踐》,介紹下equinox是如何來加載Bundle中的class的。
閱讀全文
摘要: OSGi最吸引人的特性除了模塊化之外,就是動態化了,在我之前寫的OSGi實戰以及進階兩篇Opendoc中,都有相關的示例,但不知道大家有沒有注意,在兩篇Opendoc中都未提及到bundle本身的更新,而基本都是以新增服務實現的bundle以及停止服務時限的bundle為例,并且相對而言是個比較簡單的例子,動態化在java界更明確的詞也許是hot deployment,而hot deployment的實現并不容易,同樣,即使你采用OSGi,但也不代表你的應用就具備了hot deployment的能力,在hot deployment上,完美的結果就是當更新完成后,新的執行請求就在新的代碼邏輯上正確的執行,就像沒發生過更新這回事樣,但實際要做到這樣的效果,遠沒這么容易,即使是基于OSGi也同樣如此,No magic & no silver bullet,在本篇blog中我們就來具體的看看。
閱讀全文
摘要: 在這篇blog中放置了我收集的一些網站架構相關的PPT和文章,提供給大家下載,如果大家有相關的好的PPT、文章的話,也歡迎推薦給我,非常感謝,:),這篇blog的內容也會隨著我收集的東西增加而變化,同時也會增加我對于這些PPT、文章的看法和評價。
閱讀全文
摘要: 把自己寫的兩篇opendoc和Book統一放入此blog中提供下載,避免占據我blog的兩個置頂位,:)
閱讀全文
摘要: 在使用OSGi時,有些時候會需要在OSGi容器外獲取OSGi服務,加載OSGi容器加載的class,或者說需要內嵌OSGi容器,本篇blog以一個簡單的例子來說明如何基于equinox實現OSGi容器的內嵌,或者說通過程序來啟動equinox,同時也通過此例子展示下如何在容器外來獲取OSGi服務以及加載OSGi容器里面其他插件的class,同時還會附送一個如何讓OSGi容器里的插件能加載到OSGi容器外的類的方法。
閱讀全文
摘要: 此次QCon北京大會為期三天,總體而言,精彩紛呈,尤其是第二天,完全將大會的精彩推至了高潮,讓大家覺得值回票價,總結而言,這次大會是相當成功的,一次成功的大會不能缺少的有兩個要素:知名的嘉賓和精彩的Topic,無疑QCon北京大會很好的把握了這兩個要素。
知名的嘉賓,此次大會出現的嘉賓絕對足夠重量級,看看Title就嚇人了:Spring老大、ThoughtWorks首席科學家、Dojo creator、eBay搜索核心架構師、Amazon云計算戰略師、淘寶首席架構師、支付寶首席架構師、豆瓣技術總監、優酷首席架構師、網易有道技術總監等等。
精彩的Topic,不是說嘉賓知名Topic就一定精彩的,不能不說,這次大會還是有些爆冷門的,嘉賓不是很知名,但演講的Topic確實還不錯,而且也不是說知名的嘉賓就一定能給出精彩的Topic,就像Martin Fowler這次的Topic,實在稱不上精彩,總體而言,這次大會并不缺少精彩的Topic,來分享下我的收獲。
閱讀全文
摘要: JVM是Java程序的運行環境,因此對于JVM的掌握有助于理解Java程序的執行以及編寫,尤其是運行時碰到的一些詭異問題,那么怎么樣能考察自己對于JVM關鍵知識點的掌握情況,幫助學習JVM機制呢,在這篇blog中來探討下。
閱讀全文
摘要: 在產品中有碰到過使用LinkedBlockingQueue.poll時超時很不準的現象,關鍵是這不是一般的不準,如果只是一點點不準的話也就勉強接受了,例如指定poll的超時時間為100ms,但最終執行.poll這段代碼就花費了8000ms的現象,這篇blog就是展示下通過一段小小的代碼來重現這樣的現象,畢竟沒有重現是無法證明為什么會出現這樣的現象的。
閱讀全文
摘要: 本文摘自《構建高性能的大型分布式Java應用》一書,Garbage First簡稱G1,它的目標是要做到盡量減少GC所導致的應用暫停的時間,讓應用達到準實時的效果,同時保持JVM堆空間的利用率,將作為CMS的替代者在JDK 7中閃亮登場,其最大的特色在于允許指定在某個時間段內GC所導致的應用暫停的時間最大為多少,例如在100秒內最多允許GC導致的應用暫停時間為1秒,這個特性對于準實時響應的系統而言非常的吸引人,這樣就再也不用擔心系統突然會暫停個兩三秒了。
閱讀全文