2016年,谁是最受欢迎的 Java EE 服务器?

【编者按】本文作者为性能监控工具 Plumbr 创始人 Nikita Salnikov-tarnovski,主要介绍2016年度最广为使用的 Java EE 容器及其排名变化情况。本文系国内 ITOM 管理平台 OneAPM 编译呈现,以下为正文。

这是我们发布Java领域数据的第四年。每年春季,我们都会对JVMs Plumbr 探针所收集的数据进行分析,并试图回答以下问题:

  • 各个Java 版本的使用情况(Java6、Java 7以及Java 8);
  • 各种JVM的使用情况(Oracle Hotspot ,OpenJDK 以及其他JVM);
  • 在基础架构中哪种应用服务器最常被安装;
  • 在这段时间Java领域发生了何种变化;

上周,我们发布了关于Java版本与供应商的数据。这周我们将继续发布应用服务器市场的状态数据。

以下结论基于2016年1月至3月1240个受Plumbr监控的JVM数据。这些数据都是在JVM内部通过System.getProperty()函数调用os.arch, os.version, java.version等属性收集的。

##2015年哪种Java EE容器使用最广泛? 从我们收集的1240条不同数据源中,可以识别862个场景或是约70%的环境中的容器供应商。这些容器供应商分布如下:

![2016年,谁是最受欢迎的 Java EE 服务器?

Tomcat保有量已经连续两年超过50%的份额,今年占比58.22%的它无疑是冠军。除Tomcat之外,拥有较大保有量的四家供应商分别为:

  • JBoss/WildFly,安装量占市场份额的20.22%
  • Jetty,占据了10.67%的份额
  • GlassFish,占据了饼图的5.56%
  • Oracle WebLogic ,安装量占比为2.44%

名为“其他”的条目代表着安装量少于2.5%的供应商们。其中包括Resin, Orion, OC4J, SAP NetWeaver 和IBM WebSphere deployments,它们测得的部署量都少于五条。

我们无法检测到Java EE容器的剩余JVM通常是如下状况:

  • 使用Swing或者AWT的桌面应用程序
  • 正在运行动态语言(比如Scala或Groovy)
  • 无容器服务器软件(Elasticsearch, TIBCO 等等)
  • 使用Netty(Play框架)
  • 或隐藏在开发环境启动器中(Maven,sbt, IDEA, Eclipse 等等)

##2013-2016年Java EE容器使用情况 根据2013-2016年间录得的相同类型数据,我们进行了分析比对,得到以下数据:

![2016年,谁是最受欢迎的 Java EE 服务器?

首先,在对这些随时间变化的数据进行解释时应当持保留态度。譬如说,Jetty从它之前的辉煌成绩到2015年只剩下原先三分之一的保有量,很有可能是因为Plumbr在这一年从开发工具转型为监控解决方案。这导致,使用其他Java EE的生产部署方案取代了开发者友好的Jetty的份额。

在2015年的变化中,Oracle Weblogic使用量降至原来的三成不到也是十分引人关注的现象。这到底是由于公司们开始放弃Oracle,还是因为使用Plumbr的公司类型太过多样,目前还无法确定。

不过,有一件事是确定的:在所有监控的JVM中,Tomcat安装量连续两年占比接近60%。考虑到Tomcat在最初设计时只是一个参考实现,以及其他供应商在宣传自己的容器时投入的巨大努力,这实在是个不可思议的结果。

OneAPM 能为您提供端到端的 Java 应用性能解决方案,我们支持所有常见的 Java 框架及应用服务器,助您快速发现系统瓶颈,定位异常根本原因。分钟级部署,即刻体验,Java 监控从来没有如此简单。想阅读更多技术文章,请访问 OneAPM 官方技术博客

本文转自 OneAPM 官方博客

原文地址:https://dzone.com/articles/most-popular-java-ee-servers-2016-edition

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )