该项目的目标是在不使用任何库的情况下,用纯 Java 构建功能齐全的 HTTP 服务器和客户端。客户端和服务器将使用非阻塞 NIO 以提供可能的最高性能。
要将此库添加到您的项目中,您可以在 Maven POM 中包含此依赖项:
<dependency> |
创建服务器很简单:
import io.fusionauth.http.server.HTTPListenerConfiguration; |
高性能
具有出色的性能。以下是针对使用 Prime Framework MVC 的简单应用程序使用 FusionAuth 负载测试套件的一些基本指标。
负载测试配置设置为 10 个客户端,每个客户端有 500,000 个请求。客户端是 Restify,它是一个在底层使用 URLConnection 的 FusionAuth 库。所有服务器都是 HTTP,因此 TLS 不会引入任何额外的延迟。
服务器 RPS 每秒失败次数 |
Netty 和 Tomcat 似乎都遭受了非常大规模的缓冲和连接问题。无论配置如何,两台服务器总是开始出现大规模连接超时问题。java-http没有这些问题,因为它通过选择器处理连接的方式。连接不会备份,并且客户端连接池始终可以与 Keep-Alive 一起重复使用。