你應當知道的7個Java工具

TP_funny發表於2014-11-17
Alex Zhitnitsky告訴我們這7個輔助工具的主要功能特點,這些工具每個java程式設計師都應該瞭解一下。這篇文章最初發表在takipi的部落格–Java與Scala異常分析和效能監控.
 
在準備進行鎖和負載測試之前,應該對一些最新的最具創新性的工具有一個快速瞭解。為了防止你錯過這些資訊,rebellabs最近公佈了對Java工具和技術全景的一個全球性調查結果。除了一些已有的或知名度很高的工具,現在市場上還充滿了很多不為人知的全新的工具和框架。
 
在這篇文章中我們決定收集製作一個關於這類工具的簡略名單,他們中的大多數工具只是最近推出的。其中一些工具是為Java定製的,但也有一些是支援其他語言。但對於Java專案而言,他們都是非常好的,並且擁有同一個願景:簡單化。讓我們開始吧。
 
1. JClarity – 效能監測工具

它釋出於去年9月。圍繞java效能,當前這款工具提供了兩個產品:Illuminate 和 Censum。

Illuminate是一款效能監測工具,而censum是一種聚焦於垃圾收集日誌分析的應用。

它不僅僅提供了資料收集功能和視覺化,對於檢測到的問題,這兩個工具能夠提供具有實踐性強的建議,幫助開發人員去解決問題。

“我們要做的是把問題從資料收集階段轉移到資料分析和觀察階段”– JClarity Co-Founder Ben Evans.
 

 
主要特性:
 
瓶頸檢測(磁碟I/O,垃圾收集,死鎖等)

實施計劃–提出解決問題的具體建議,如“應用程式需要增加活動執行緒數”。

解釋–一般性問題的定義以及引起該問題的常見原因,例如“垃圾回收時停頓時間耗時比例過高,可能意味著堆記憶體不夠,太小了”。

獨特之處:進行監測和效能問題確認後,他會立即提供可行性的意見來解決這些問題

幕後故事: JClarity是在倫敦建立的,他的創始人包括Martijn Verburg, Kirk Pepperdin 和 Ben Evans,都是在java效能領域有著非常豐富經驗的人。

2. Bintray-二元次的社交平臺
       
當從一些”匿名”倉庫中匯入庫檔案時,Java開發人員在某種程度上被矇在鼓裡。Bintray給這些程式碼添了“一張臉”,作為一個社會化平臺為java開發者服務,分享開源的軟體包(會不會有人說這是二元次的github?).它擁有超過85000個檔案包,涵蓋18000個庫,展示了當前流行的和新版本的包。
 

 
主要特性:
 
上傳你的二進位制檔案,讓全世界都可以看到,並且可以和其他開發者進行交流,並得到一些反饋。

使用 Gradle / Maven / Yum / Apt工具下載包檔案,或者直接從平臺下載。

管理包的版本說明和相關文件

REST風格的API -查詢/檢索 檔案介面 和 自動分發介面

獨特之處:Bintray的基礎功能類似於maven中央倉庫。但他增加了一個社交層,提供了一個將檔案分發到CDN伺服器的簡單辦法。
 
幕後故事:JFrog基於Israel 和California,開發了Bintray。該工具是去年4月公開的,並在上次JavaOne大會上贏得了Duke’s choice award獎項

JFrog也開發Artifactory,Artifactory當然也是跑在Bintray上的。

3. Librato–監控和視覺化雲服務
 
Librato作為一個監控和管理雲應用的託管服務,它可以瞬間完成自定義皮膚的建立,而不需要使用者去配置或者安裝任何軟體。
相比其他皮膚,他的外觀和感受如黃油般順滑。
       
“僅當你能夠從資料中獲得具有實際意義的資訊時,資料才是有價值的”—Joe Ruscio, Co-Founder & CTO
 

 
主要特性:
 
資料收集:整合了Heroku、AWS、數十種整合代理,以及繫結了java、Clojure等語言 。

自定義報告:效能指標和告警可以通過郵件、HipChat、 Campfire以及HTTP POST請求 與你所想到的任何東西進行整合

資料視覺化:帶有註釋、相關性分析,共享和嵌入選項的美觀的圖片展示

告警 :當指標超過一定閾值時會自動發出通知告警

特別之處:很難找到任何Librato不知道如何表述以及對資料的理解。

幕後故事:Fred van den Bosch, Joe Ruscio, Mike Heffner and Dan Stodin 幾個人在San Francisco 建立了Librato

4. Takipi

Takipi的建立基於一個簡單的目的:告訴開發人員到底在何時什麼原因程式碼出現異常。每當一個新的異常丟擲,或者一個錯誤日誌發生,Takipi就會捕獲它,給使用者展示可能引起該異常的變數狀態,經過的方法和裝置。Takipi在錯誤發生時刻將會覆蓋實際執行程式碼—所以在你分析異常時,就如同當異常發生時你正好在場。
 

 
主要特性
 
監控-捕獲/未捕獲的異常,http錯誤,和被日誌記錄的錯誤

優先排序- 如果異常錯誤涉及到新增的程式碼或者修改過的程式碼,工具會統計叢集中這樣的錯誤發生的頻率,以及錯誤發生的概率是否在遞增。

分析-觀測實際程式碼和變數狀態,甚至跨越不同的機器和應用

獨特之處:
 
生產環境的God Mode模式。錯誤發生時展示實際執行的異常程式碼和變數狀態。這樣你分析異常時,就如同當異常發生時你在場。
 
幕後故事: Takipi建立於2012年的San Francisco 和Tel Aviv。每種異常型別和錯誤都有唯一的怪物來代表他。

5. Elasticsearch – 搜尋和分析平臺
 
Elasticsearch已經存在一段時間了,但是他的1.0.0版本在2月份才釋出。他是一個基於lucene的,託管在github上的開源專案,他有200位開發者。你可以從這check out出程式碼. Elasticsearch提供的主要特性 是易於使用的,可擴充套件的,分散式的,rest風格的檢索。
 

 
主要特性
 
實時文件儲存,文件物件的每個field都建立了索引,都能被檢索

構建適應於不同規模的應用的體系結構,在此之上實現分散式搜尋。

為其他平臺系統提供了具有rest風格的和原生java api。他也有hadoop的依賴包

簡單可用性強,不需要對搜尋原理有深入的理解。該平臺有免費模式,所以你可以快速開始應用起來。

獨特之處:如他所說,他具有可伸縮性,靈活的構建和易用性。提供一個易用性的平臺,進行規模擴充套件時無需考慮核心功能與使用者自定義選項間妥協。
 
幕後故事:Elasticsearch由 Shay Banon back建立於2010年,最近募集到了7000萬刀的資金。在建立該專案前,Banon就經營一個Compass的開源專案,現在他是一個著名的搜尋專家。那他進入搜尋領域的動機呢?原來是為了讓他妻子能夠儲存和檢索所喜歡的食譜,進而開發的一個應用。
 
6. Spark – 微型Web框架
 
 回到java語言,Spark是一個極具自由靈感的,能夠快速建立Web應用程式的微型Web框架。為了支援java8和lambdas,今年早些時候他被重寫了。Spark是一個開源專案,原始碼可以在github上可以看到(請點選這裡),目前開發該框架的人是Per Wendel和 過去幾年為了實現只需要付出很小的努力,便可以快速構建一個web應用這樣使命的一小撮人。
 

 
主要特性:
 
快速上手,配置簡單

直觀的路由匹配器

建立可複用組建的模板引擎,它支援Freemarker, Apache Velocity 和 Mustache

Spark可以執行在Jetty上,也可以在tomcat上跑

獨特之處:圖片勝過千言萬語,圖片更加直觀,把程式碼check出來感受一下吧

幕後故事:Spark的創始人是Per Wendel,瑞典人。目前與其他20個人開發Spark。去看看討論組,學習更多的關於Spark的知識,瞭解如何去給這個開源專案做貢獻,解決bug。

 7. Plumbr – 記憶體洩漏檢測
 
深入研究java虛擬機器,其中的GC(Garbage Collector 垃圾收集器)將那些不再使用的物件進行回收,釋放記憶體。儘管如此,有時候,開發人員仍舊會持有那些不再使用的物件引用,佔用記憶體。這樣就會發生記憶體洩漏,這個時候,Plumer就該登場了。如果應用發生了記憶體洩漏問題,Plumer就會進行檢測,生成報告,並且提供切實可行的方案去fix掉這個問題。
 

 
主要特性
 
實時的記憶體洩漏檢測和告警

一份包含時間,記憶體大小,速度(MB/h) 以及洩漏事件的重要級別的報告。

記憶體洩漏的程式碼位置

獨特之處:快,切中要點,從程式碼中分析並給出建議幫你修復Bug
 
幕後故事:Plumbr建立於Estonia,創始人是Priit Potter, Ivo Mägi, Nikita Salnikov-Tarnovski 和 Vladimir Šor。加入這樣一個擁有非常豐富經驗的java團隊吧,這些傢伙都是非常厲害的救火隊員。嗯,是這樣的
 
 原文連結: jaxenter 
相關閱讀
評論(1)

相關文章