资讯专栏INFORMATION COLUMN

你应当知道的7个Java工具

Pandaaa / 2034人阅读

摘要:如果应用发生了内存泄漏问题,就会进行检测生成报告,并且提供切实可行的方案去掉这个问题。主要特性实时的内存泄漏检测和告警一份包含时间,内存大小,速度以及泄漏事件的重要级别的报告。

在这篇文章中我们决定收集制作一个关于这类工具的简略名单,他们中的大多数工具只是最近推出的。其中一些工具是为Java定制的,但也有一些是支持其他语言。但对于Java项目而言,他们都是非常好的,并且拥有同一个愿景:简单化。让我们开始吧。

1. JClarity – 性能监测工具

它发布于去年9月。围绕java性能,当前这款工具提供了两个产品:Illuminate 和 Censum。

Illuminate是一款性能监测工具,而censum是一种聚焦于垃圾收集日志分析的应用。

它不仅仅提供了数据收集功能和可视化,对于检测到的问题,这两个工具能够提供具有实践性强的建议,帮助开发人员去解决问题。

“我们要做的是把问题从数据收集阶段转移到数据分析和观察阶段”– JClarity Co-Founder Ben Evans.

主要特性:

1.瓶颈检测(磁盘I/O,垃圾收集,死锁等)

2.实施计划–提出解决问题的具体建议,如“应用程序需要增加活动线程数”。

3.解释–一般性问题的定义以及引起该问题的常见原因,例如“垃圾回收时停顿时间耗时比例过高,可能意味着堆内存不够,太小了”。

独特之处?:

进行监测和性能问题确认后,他会立即提供可行性的意见来解决这些问题

幕后故事:

JClarity是在伦敦建立的,他的创始人包括Martijn Verburg, Kirk Pepperdin 和 Ben Evans,都是在java性能领域有着非常丰富经验的人。

想要获取更多关于JClarity的信息,点击这里

2. Bintray-二元次的社交平台

当从一些”匿名”仓库中导入库文件时,Java开发人员在某种程度上被蒙在鼓里。Bintray给这些代码添了“一张脸”,作为一个社会化平台为java开发者服务,分享开源的软件包(会不会有人说这是二元次的github?).它拥有超过85000个文件包,涵盖18000个库,展示了当前流行的和新版本的包。

主要特性:

1.上传你的二进制文件,让全世界都可以看到,并且可以和其他开发者进行交流,并得到一些反馈。

2.使用 Gradle / Maven / Yum / Apt工具下载包文件,或者直接从平台下载。

3.管理包的版本说明和相关文档

4.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

主要特性:

1.数据收集:集成了Heroku、AWS、数十种集成代理,以及绑定了java、Clojure等语言 。

2.自定义报告:性能指标和告警可以通过邮件、HipChat、 Campfire以及HTTP POST请求 与你所想到的任何东西进行整合

3.数据可视化:带有注释、相关性分析,共享和嵌入选项的美观的图片展示

4.告警 :当指标超过一定阈值时会自动发出通知告警

特别之处:

很难找到任何Librato不知道如何表述以及对数据的理解。

幕后故事:

Fred van den Bosch, Joe Ruscio, Mike Heffner and Dan Stodin 几个人在San Francisco 创建了Librato

4.?Takipi

Takipi的建立基于一个简单的目的:告诉开发人员到底在何时什么原因代码出现异常。每当一个新的异常抛出,或者一个错误日志发生,Takipi就会捕获它,给用户展示可能引起该异常的变量状态,经过的方法和设备。Takipi在错误发生时刻将会覆盖实际执行代码—所以在你分析异常时,就如同当异常发生时你正好在场。

主要特性

1.监控-捕获/未捕获的异常,http错误,和被日志记录的错误

2.优先排序- 如果异常错误涉及到新增的代码或者修改过的代码,工具会统计集群中这样的错误发生的频率,以及错误发生的概率是否在递增。

3.分析-观测实际代码和变量状态,甚至跨越不同的机器和应用

独特之处:

生产环境的God Mode模式。错误发生时展示实际执行的异常代码和变量状态。这样你分析异常时,就如同当异常发生时你在场。

幕后故事:

Takipi创建于2012年的San Francisco 和Tel Aviv。每种异常类型和错误都有唯一的怪物来代表他。

5. Elasticsearch – 搜索和分析平台

Elasticsearch已经存在一段时间了,但是他的1.0.0版本在2月份才发布。他是一个基于lucene的,托管在github上的开源项目,他有200位开发者。你可以从这check out出代码. Elasticsearch提供的主要特性 是易于使用的,可扩展的,分布式的,rest风格的检索。

主要特性

1.实时文档存储,文档对象的每个field都建立了索引,都能被检索

2.构建适应于不同规模的应用的体系结构,在此之上实现分布式搜索。

3.为其他平台系统提供了具有rest风格的和原生java api。他也有hadoop的依赖包

4.简单可用性强,不需要对搜索原理有深入的理解。该平台有免费模式,所以你可以快速开始应用起来。

独特之处:

如他所说,他具有可伸缩性,灵活的构建和易用性。提供一个易用性的平台,进行规模扩展时无需考虑核心功能与用户自定义选项间妥协。

幕后故事:

Elasticsearch由 Shay Banon back创建于2010年,最近募集到了7000万刀的资金。在创建该项目前,Banon就经营一个Compass的开源项目,现在他是一个著名的搜索专家。那他进入搜索领域的动机呢?原来是为了让他妻子能够保存和检索所喜欢的食谱,进而开发的一个应用。

6. Spark – 微型Web框架

回到java语言,Spark是一个极具自由灵感的,能够快速创建Web应用程序的微型Web框架。为了支持java8和lambdas,今年早些时候他被重写了。Spark是一个开源项目,源代码可以在github上可以看到(请点击这里),目前开发该框架的人是Per Wendel和 过去几年为了实现只需要付出很小的努力,便可以快速构建一个web应用这样使命的一小撮人。

主要特性:

1.快速上手,配置简单

2.直观的路由匹配器

3.创建可复用组建的模板引擎,它支持Freemarker, Apache Velocity 和 Mustache

4.Spark可以运行在Jetty上,也可以在tomcat上跑

独特之处:

图片胜过千言万语,图片更加直观,把代码check出来感受一下吧

幕后故事:

Spark的创始人是Per Wendel,瑞典人。目前与其他20个人开发Spark。去看看讨论组,学习更多的关于Spark的知识,了解如何去给这个开源项目做贡献,解决bug。

7. Plumbr – 内存泄漏检测

深入研究java虚拟机,其中的GC(Garbage Collector 垃圾收集器)将那些不再使用的对象进行回收,释放内存。尽管如此,有时候,开发人员仍旧会持有那些不再使用的对象引用,占用内存。这样就会发生内存泄漏,这个时候,Plumer就该登场了。如果应用发生了内存泄漏问题,Plumer就会进行检测,生成报告,并且提供切实可行的方案去fix掉这个问题。

主要特性

1.实时的内存泄漏检测和告警

2.一份包含时间,内存大小,速度(MB/h) 以及泄漏事件的重要级别的报告。

3.内存泄漏的代码位置

如果你想学习Java,想加入Java开发行业,那么动力节点[**Java零基础**][1]班现已开启免费学习,对于想学Java的同学无疑是好消息,亲自考察教学质量,机会就在眼前,快来报名吧,座位紧张,先到先得。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/66793.html

相关文章

  • 应当知道Java牛人 v2.0

    摘要:你应当了解的位牛人编译李隽龙。拥有四项发明专利,据称他的净资产值高达亿美元。年月日,在其博客上宣布调离安卓部门并将承担谷歌公司新的项目。年月日,通知执行委员会他将不再参选。后来,又重新当选了理事会的全权代表。 Java领域有很多著名的人物,他们为Java社区编写框架、产品、工具或撰写书籍改变了Java编程的方式。本文是《最受欢迎的8位Java牛人》的2.0版本。 ChangLo...

    _Suqin 评论0 收藏0
  • 猫头鹰深夜翻译:在JAVA中记录日志小建议

    摘要:是指可能导致程序终止的非常严重的时间。具有最高的级别,旨在关闭中的日志功能。因此为每一个消息选择一个合适的日志级别是非常重要的。日志的个小建议将日志访日代码块它能显著的减少因为字符串拼接而带来的性能的影响。 前言 首先,这篇文章没有进行任何的日志功能的详细介绍,而是对日志提出了几种最佳实践。适合对日志记录有所了解的同学阅读。下面是正文: JAVA日志管理既是一门科学,又是一门艺术。科学...

    venmos 评论0 收藏0
  • 编写可维护javascript

    摘要:为什么要编写可维护的软件生命周期的成本消耗在了维护上。相等具有强制类型转换的机制。检测字符串检测数字检测布尔值检测检测引用值引用值也称为对象,检测某个引用值的类型的官方最好的方法是使用运算符。 为什么要编写可维护的javascript? 软件生命周期80%的成本消耗在了维护上。 几乎所有的软件维护者都不是它的最初作者。 编码规范提高了软件的可读性,它让工程师能够快速且充分地理解新的代...

    singerye 评论0 收藏0
  • 编写可维护javascript

    摘要:为什么要编写可维护的软件生命周期的成本消耗在了维护上。相等具有强制类型转换的机制。检测字符串检测数字检测布尔值检测检测引用值引用值也称为对象,检测某个引用值的类型的官方最好的方法是使用运算符。 为什么要编写可维护的javascript? 软件生命周期80%的成本消耗在了维护上。 几乎所有的软件维护者都不是它的最初作者。 编码规范提高了软件的可读性,它让工程师能够快速且充分地理解新的代...

    weknow619 评论0 收藏0
  • 精通Python网络爬虫(0):网络爬虫学习路线

    摘要:以上是如果你想精通网络爬虫的学习研究路线,按照这些步骤学习下去,可以让你的爬虫技术得到非常大的提升。 作者:韦玮 转载请注明出处 随着大数据时代的到来,人们对数据资源的需求越来越多,而爬虫是一种很好的自动采集数据的手段。 那么,如何才能精通Python网络爬虫呢?学习Python网络爬虫的路线应该如何进行呢?在此为大家具体进行介绍。 1、选择一款合适的编程语言 事实上,Python、P...

    spacewander 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<