日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Java REST API Server 性能比较 Tomcat/Jetty/Grizzly/Undertow

發布時間:2024/3/24 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java REST API Server 性能比较 Tomcat/Jetty/Grizzly/Undertow 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JSR-356:WebSocket
JSR-311:JAX-RS
原文地址
https://menelic.com/2016/01/06/java-rest-api-benchmark-tomcat-vs-jetty-vs-grizzly-vs-undertow/

引言

Java Web Server該如何選擇,是很多開發者都需要思考的問題,尤其是隨著微服務(micro-services)的興起,嵌入式的web server越來越受到關注和重視。

那么不同的web server有什么區別呢?

jetty(Eclipse)

jetty可以作為 web server 和 servlet 容器,此外還支持HTTP/2,WebSocekt,OSGi,JMX…

grizzly(Sun/Oracle)

Grizzly是基于Java NIO的開發框架,讓開發者更好的使用Java NIP API;此外它也提供了HTTP Services,如http server,OSGi,支持 JAXWS。因此能在Grizzly http server上運行JAX-RS應用(比如Jersey)。

tomcat(Apache)

Tomcat 支持 Java Servlet,JavaServer Pages, JAX-WS以及java websocket技術。

undertow(JBoss)

Undertow是由java開發的 web server,基于 Java NIO,提供了阻塞和非阻塞兩種模式,支持HTTP,WebSocket,Servlet3.1,支持嵌入式開發。特點是輕量級,

測試

下面,將對上述四中應用作為 JAX-RS server 時的性能進行測試比較,探討哪一種web容器能夠更加快速,靈活,高效的發布 JAX-RS REST API。本文選擇 Jersey 作為 JAX-RS 實現。

(Spring boot 支持 Tomcat,Jetty,和Undertow。)

版本選擇:
1. Tomcat(8.0.30),
2. Jetty(9.2.14),
3. Grizzly(2.22.1) and
4. Undertow(1.3.10.FINAL).

測試接口只返回簡單的json文本。

public class ApiResource {public static final String RESPONSE = "{\"greeting\":\"Hello World!\"}";@GETpublic Response test() {return ok(RESPONSE).build();} }

測試工具使用 ApacheBench,并發級別=1,4,16.64,128
測試系統:laptop/4C/8G jdk1.8 linux

測試結果:

1 同步等級=1


由圖可見,grizzly性能最好。

2 同步等級=128



由圖可見,Grizzly性能依然是最好的,

結論

測試結果顯示,grizzly在吞吐量和響應時間兩方面都表現最好。

本次測試,均使用了容器的默認配置,調整不同容器的配置參數可能會對測試結果產生較大影響,后續會進行進一步的測試。

源碼

GitHub

總結

以上是生活随笔為你收集整理的Java REST API Server 性能比较 Tomcat/Jetty/Grizzly/Undertow的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。