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 上阅读或评论(发表评论需要登录)