常用的Java工具
1.JClarity–性能監(jiān)測(cè)工具
它發(fā)布于去年9月。圍繞java性能,當(dāng)前這款工具提供了兩個(gè)產(chǎn)品:Illuminate和Censum。
Illuminate是一款性能監(jiān)測(cè)工具,而censum是一種聚焦于垃圾收集日志分析的應(yīng)用。
它不僅僅提供了數(shù)據(jù)收集功能和可視化,對(duì)于檢測(cè)到的問(wèn)題,這兩個(gè)工具能夠提供具有實(shí)踐性強(qiáng)的建議,幫助開發(fā)人員去解決問(wèn)題?!拔覀円龅氖前褑?wèn)題從數(shù)據(jù)收集階段轉(zhuǎn)移到數(shù)據(jù)分析和觀察段”–JClarityCo-FounderBenEvans.
主要特性:1、瓶頸檢測(cè)(磁盤I/O,垃圾收集,死鎖等);2、實(shí)施計(jì)劃–提出解決問(wèn)題的具體建議,如“應(yīng)用程序需要增加活動(dòng)線程數(shù)”。3、解釋–一般性問(wèn)題的定義以及引起該問(wèn)題的常見(jiàn)原因,例如“垃圾回收時(shí)停頓時(shí)間耗時(shí)比例過(guò)高,可能意味著堆內(nèi)存不夠,太小了”。
獨(dú)特之處:
進(jìn)行監(jiān)測(cè)和性能問(wèn)題確認(rèn)后,他會(huì)立即提供可行性的意見(jiàn)來(lái)解決這些問(wèn)題。
幕后故事:
JClarity是在倫敦建立的,他的創(chuàng)始人包括MartijnVerburg,KirkPepperdin和BenEvans,都是在java性能領(lǐng)域有著非常豐富經(jīng)驗(yàn)的人。
2.Bintray-二元次的社交平臺(tái)
當(dāng)從一些”匿名”倉(cāng)庫(kù)中導(dǎo)入庫(kù)文件時(shí),Java開發(fā)人員在某種程度上被蒙在鼓里。Bintray給這些代碼添了“一張臉”,作為一個(gè)社會(huì)化平臺(tái)為java開發(fā)者服務(wù),分享開源的軟件包(會(huì)不會(huì)有人說(shuō)這是二元次的github?).它擁有超過(guò)85000個(gè)文件包,涵蓋18000個(gè)庫(kù),展示了當(dāng)前流行的和新版本的包。
主要特性:
1、上傳你的二進(jìn)制文件,讓全世界都可以看到,并且可以和其他開發(fā)者進(jìn)行交流,并得到一些反饋。
2、使用Gradle/Maven/Yum/Apt工具下載包文件,或者直接從平臺(tái)下載。
3、管理包的版本說(shuō)明和相關(guān)文檔
4、REST風(fēng)格的API-查詢/檢索文件接口和自動(dòng)分發(fā)接口
獨(dú)特之處:
Bintray的基礎(chǔ)功能類似于maven中央倉(cāng)庫(kù)。但他增加了一個(gè)社交層,提供了一個(gè)將文件分發(fā)到CDN服務(wù)器的簡(jiǎn)單辦法。
幕后故事:
JFrog基于Israel和California,開發(fā)了Bintray。該工具是去年4月公開的,并在上次JavaOne大會(huì)上贏得了Duke’schoiceaward獎(jiǎng)項(xiàng)JFrog也開發(fā)Artifactory,Artifactory當(dāng)然也是跑在Bintray上的。
3.Librato–監(jiān)控和可視化云服務(wù)
Librato作為一個(gè)監(jiān)控和管理云應(yīng)用的托管服務(wù),它可以瞬間完成自定義面板的創(chuàng)建,而不需要用戶去配置或者安裝任何軟件。相比其他面板,他的外觀和感受如黃油般順滑。“僅當(dāng)你能夠從數(shù)據(jù)中獲得具有實(shí)際意義的信息時(shí),數(shù)據(jù)才是有價(jià)值的”—JoeRuscio,Co-Founder&CTO
主要特性:
1、數(shù)據(jù)收集:集成了Heroku、AWS、數(shù)十種集成代理,以及綁定了java、Clojure等語(yǔ)言。
2、自定義報(bào)告:性能指標(biāo)和告警可以通過(guò)郵件、HipChat、Campfire以及HTTPPOST請(qǐng)求與你所想到的任何東西進(jìn)行整合
3、數(shù)據(jù)可視化:帶有注釋、相關(guān)性分析,共享和嵌入選項(xiàng)的美觀的圖片展示
4、告警:當(dāng)指標(biāo)超過(guò)一定閾值時(shí)會(huì)自動(dòng)發(fā)出通知告警
特別之處:
很難找到任何Librato不知道如何表述以及對(duì)數(shù)據(jù)的理解。
幕后故事:
FredvandenBosch,JoeRuscio,MikeHeffnerandDanStodin幾個(gè)人在SanFrancisco創(chuàng)建了Librato
4.Takipi
Takipi的建立基于一個(gè)簡(jiǎn)單的目的:告訴開發(fā)人員到底在何時(shí)什么原因代碼出現(xiàn)異常。每當(dāng)一個(gè)新的異常拋出,或者一個(gè)錯(cuò)誤日志發(fā)生,Takipi就會(huì)捕獲它,給用戶展示可能引起該異常的變量狀態(tài),經(jīng)過(guò)的方法和設(shè)備。Takipi在錯(cuò)誤發(fā)生時(shí)刻將會(huì)覆蓋實(shí)際執(zhí)行代碼—所以在你分析異常時(shí),就如同當(dāng)異常發(fā)生時(shí)你正好在場(chǎng)。
主要特性
1、監(jiān)控-捕獲/未捕獲的異常,http錯(cuò)誤,和被日志記錄的錯(cuò)誤
2、優(yōu)先排序-如果異常錯(cuò)誤涉及到新增的代碼或者修改過(guò)的代碼,工具會(huì)統(tǒng)計(jì)集群中這樣的錯(cuò)誤發(fā)生的頻率,以及錯(cuò)誤發(fā)生的概率是否在遞增。
3、分析-觀測(cè)實(shí)際代碼和變量狀態(tài),甚至跨越不同的機(jī)器和應(yīng)用
獨(dú)特之處:
生產(chǎn)環(huán)境的GodMode模式。錯(cuò)誤發(fā)生時(shí)展示實(shí)際執(zhí)行的異常代碼和變量狀態(tài)。這樣你分析異常時(shí),就如同當(dāng)異常發(fā)生時(shí)你在場(chǎng)。
幕后故事:
Takipi創(chuàng)建于2012年的SanFrancisco和TelAviv。
5.Elasticsearch–搜索和分析平臺(tái)
Elasticsearch已經(jīng)存在一段時(shí)間了,但是他的1.0.0版本在2月份才發(fā)布。他是一個(gè)基于lucene的,托管在github上的開源項(xiàng)目,他有200位開發(fā)者。你可以從這checkout出碼.Elasticsearch提供的主要特性是易于使用的,可擴(kuò)展的,分布式的,rest風(fēng)格的檢索。
主要特性
1、實(shí)時(shí)文檔存儲(chǔ),文檔對(duì)象的每個(gè)field都建立了索引,都能被檢索
2、構(gòu)建適應(yīng)于不同規(guī)模的應(yīng)用的體系結(jié)構(gòu),在此之上實(shí)現(xiàn)分布式搜索。
3、為其他平臺(tái)系統(tǒng)提供了具有rest風(fēng)格的和原生javaapi。他也有hadoop的依賴包
4、簡(jiǎn)單可用性強(qiáng),不需要對(duì)搜索原理有深入的理解。該平臺(tái)有免費(fèi)模式,所以你可以快速開始應(yīng)用起來(lái)。
獨(dú)特之處:
如他所說(shuō),他具有可伸縮性,靈活的構(gòu)建和易用性。提供一個(gè)易用性的平臺(tái),進(jìn)行規(guī)模擴(kuò)展時(shí)無(wú)需考慮核心功能與用戶自定義選項(xiàng)間妥協(xié)。
幕后故事:
Elasticsearch由ShayBanonback創(chuàng)建于2010年,最近募集到了7000萬(wàn)刀的資金。在創(chuàng)建該項(xiàng)目前,Banon就經(jīng)營(yíng)一個(gè)Compass的開源項(xiàng)目,現(xiàn)在他是一個(gè)搜索專家。那他進(jìn)入搜索領(lǐng)域的動(dòng)機(jī)呢?原來(lái)是為了讓他妻子能夠保存和檢索所喜歡的食譜,進(jìn)而開發(fā)的一個(gè)應(yīng)用。
6.Spark–微型Web框架
回到j(luò)ava語(yǔ)言,Spark是一個(gè)極具自由靈感的,能夠快速創(chuàng)建Web應(yīng)用程序的微型Web框架。為了支持java8和lambdas,今年早些時(shí)候他被重寫了。Spark是一個(gè)開源項(xiàng)目,源代碼可以在github上可以看到(請(qǐng)點(diǎn)擊這里),目前開發(fā)該框架的人是PerWendel和過(guò)去幾年為了實(shí)現(xiàn)只需要付出很小的努力,便可以快速構(gòu)建一個(gè)web應(yīng)用這樣使命的一小撮人。
主要特性:1、快速上手,配置簡(jiǎn)單;2、直觀的路由匹配器;3、創(chuàng)建可復(fù)用組建的模板引擎,它支持Freemarker,ApacheVelocity和Mustache;4、Spark可以運(yùn)行在Jetty上,也可以在tomcat上跑
獨(dú)特之處:
圖片勝過(guò)千言萬(wàn)語(yǔ),圖片更加直觀,把代碼check出來(lái)感受一下吧
幕后故事:
Spark的創(chuàng)始人是PerWendel,瑞典人。目前與其他20個(gè)人開發(fā)Spark。去看看討論組,學(xué)習(xí)更多的關(guān)于Spark的知識(shí),了解如何去給這個(gè)開源項(xiàng)目做貢獻(xiàn),解決bug。
7.Plumbr–內(nèi)存泄漏檢測(cè)
深入研究java虛擬機(jī),其中的GC(GarbageCollector垃圾收集器)將那些不再使用的對(duì)象進(jìn)行回收,釋放內(nèi)存。盡管如此,有時(shí)候,開發(fā)人員仍舊會(huì)持有那些不再使用的對(duì)象引用,占用內(nèi)存。這樣就會(huì)發(fā)生內(nèi)存泄漏,這個(gè)時(shí)候,Plumer就該登場(chǎng)了。如果應(yīng)用發(fā)生了內(nèi)存泄漏問(wèn)題,Plumer就會(huì)進(jìn)行檢測(cè),生成報(bào)告,并且提供切實(shí)可行的方案去fix掉這個(gè)問(wèn)題。
主要特性:1、實(shí)時(shí)的內(nèi)存泄漏檢測(cè)和告警;2、一份包含時(shí)間,內(nèi)存大小,速度(MB/h)以及泄漏事件的重要級(jí)別的報(bào)告。3、內(nèi)存泄漏的代碼位置
獨(dú)特之處:速度快,切中要點(diǎn),從代碼中分析并給出建議幫你修復(fù)Bug