Grizzly HTTP 服务器

最后更新: 2025-03-06 16:08:24 +0800 +0800
tags: Java | Grizzly | Http | Jax-Rs
原文以英文撰写。您正在阅读AI翻译版本。

Grizzly 是由 Eclipse EE4J 项目维护的 Java NIO 网络框架。其 grizzly-framework 模块基于 Java 的非阻塞 I/O API;它不是对某个特定操作系统 API(例如 epoll)的直接封装。

模块 #

常见的 Grizzly 模块包括:

  • grizzly-http,提供 HTTP 协议支持;
  • grizzly-http-server,提供 Grizzly 自有 API 的可嵌入式 HTTP 服务器;以及
  • grizzly-http-servlet,提供与 servlet 相关的集成。

GlassFish 使用 Grizzly,Grizzly 也可以运行小型嵌入式服务。Grizzly 是 HTTP 服务器,而不是 Jakarta REST 实现。提供 JAX-RS 资源时,请将其与 Jersey 结合使用。

在 Grizzly 上运行 Jersey #

创建 Jersey ResourceConfig,注册资源类或资源包,然后创建并启动服务器:

java
ResourceConfig config = new ResourceConfig()
        .packages("com.example.api");

HttpServer server = GrizzlyHttpServerFactory.createHttpServer(
        URI.create("http://0.0.0.0:8080/"), config, false);
server.start();
Runtime.getRuntime().addShutdownHook(new Thread(server::shutdownNow));

使用由 Jersey BOM 或平台管理的兼容 Jersey 和 Grizzly 版本。应有意识地绑定地址: 0.0.0.0 会让服务暴露在所有接口上,而 127.0.0.1 会将其限制在本机。将嵌入式 服务器用于生产环境前,应配置 TLS、请求限制、超时、优雅停机和结构化日志。

评论

在 GitHub 上阅读或评论(发表评论需要登录)