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