每个行业都会经历变化,变化是不可避免的。为了适应变化和交付,我们需要使用正确的工具,因此我们必须查看市场上或软件行业开源领域中现有工具的性能。性能是:对于特定数量的请求,系统需要多少时间来响应。
让我们比较一下几个开源的RESTful框架对大量请求的响应时间。Jersey和Resteasy被选为服务器端RESTful服务。独立的服务如Spring Boot、Javalin和Spark Java也被选中。客户端服务选择了Jersey、OkHTTP和Unirest。
这里使用了非常简单的代码,其中包括 java.home value、一个普通的Java字符串消息、当前时间和服务类型(Jersey、Resteasy,等等),这也是一个Java字符串。"java.home" 的值给出了JDK的使用情况。在这里,我使用了JDK 8。
@GETpublic String getData() { JSONObject data = new JSONObject(); data.put("javaHome", System.getProperty("java.home")); data.put("data", "Hello World!"); data.put("time", LocalTime.now()); data.put("serviceProvider", "Resteasy"); return data.toString();}每个RESTful服务在一个循环中被三个不同的RESTful客户机调用1000次,结果显示在柱状图中。图表显示了不同服务器和客户端服务以微秒计算的时间。
三个图显示了框架性能在不同时间如何变化的透视图。上面的图表还展示了关于REST框架在服务器端和客户端性能的一些想法。从时间性能上看,Spring Boot 2.0是最好的,Jersey客户机是最差的。与普通的REST框架(如Jersey、Resteasy和Spring Boot)相比,Javalin和Spark等独立框架运行缓慢。像OkHTTP和Unirest这样的客户端框架在性能方面是相似的。
尽管有上述结果,但每个框架都有自己的优点和缺点。像Spark和Javalin这样的独立REST框架很容易实现,而且不局限于任何技术栈,比如Spring Boot.Jersey和Resteasy有定制的优势。