Skip to content

ServerOptions 配置说明

This content is not available in your language yet.

基础配置

serverName

类型: String

默认值: "feat"

设置服务器名称,会在 HTTP 响应头的 Server 字段中显示。

Feat.httpServer(options -> options.serverName("my-app-v1.0"))
.listen();

使用场景:

  • 在多服务部署环境中区分不同服务
  • 自定义服务器标识,增强安全性
  • 便于日志分析和问题追踪

bannerEnabled

类型: boolean

默认值: true

是否在启动时显示 Feat HTTP 服务器的版本信息。

Feat.httpServer(options -> options.bannerEnabled(false))
.listen();

使用场景:

  • 在生产环境中隐藏版本信息
  • 保持控制台输出简洁

性能调优

threadNum

类型: int

默认值: CPU 核数(至少为 2)

设置 HTTP 服务器的工作线程数。

Feat.httpServer(options -> options.threadNum(4))
.listen();

最佳实践:

  • IO 密集型应用:线程数可以设置为 CPU 核数的 2-4 倍
  • CPU 密集型应用:线程数建议设置为 CPU 核数的 1-2 倍
  • 建议通过压测确定最优线程数
  • 考虑服务器内存资源,避免设置过大的线程数

readBufferSize

类型: int

默认值: 8192(字节)

设置读缓冲区大小。

Feat.httpServer(options -> options.readBufferSize(16384))
.listen();

最佳实践:

  • 缓冲区大小至少要能容纳一个完整的 URL 或 Header 值
  • 对于大量小请求的场景,保持默认值即可
  • 处理大请求时可适当增加缓冲区大小
  • 需要平衡内存使用和性能

writeBufferSize

类型: int

默认值: 8192(字节)

设置写缓冲区大小。

Feat.httpServer(options -> options.writeBufferSize(16384))
.listen();

最佳实践:

  • 响应大文件时可适当增加缓冲区大小
  • 注意内存资源的合理分配
  • 可通过性能测试工具找到最优配置

安全设置

maxRequestSize

类型: long

默认值: Integer.MAX_VALUE

设置允许的最大请求大小。

Feat.httpServer(options -> options.setMaxRequestSize(10 * 1024 * 1024)) // 10MB
.listen();

最佳实践:

  • 根据业务需求设置合理的请求大小限制
  • 防止恶意大请求攻击
  • 文件上传场景需要适当调大此值
  • 建议在网关层面也设置相应的限制

headerLimiter

类型: int

默认值: 100

设置请求头的最大数量限制。超过此限制的请求头将被忽略。

Feat.httpServer(options -> options.headerLimiter(50))
.listen();

使用场景:

  • 防止 HTTP 头部攻击
  • 限制异常请求
  • 保护服务器资源

调试功能

debug

类型: boolean

默认值: false

是否开启调试模式。开启后会在控制台打印请求和响应的详细信息。

Feat.httpServer(options -> options.debug(true))
.listen();

使用场景:

  • 开发环境调试请求/响应内容
  • 排查 HTTP 通信问题
  • 分析请求处理流程

注意事项:

  • 生产环境建议关闭 debug 模式
  • debug 模式会影响服务性能

完整配置示例

Feat.httpServer(options -> {
// 基础配置
options.serverName("my-app-v1.0");
options.bannerEnabled(true);
// 性能调优
options.threadNum(Runtime.getRuntime().availableProcessors() * 2);
options.readBufferSize(16384);
options.writeBufferSize(16384);
// 安全设置
options.setMaxRequestSize(10 * 1024 * 1024); // 10MB
options.headerLimiter(50);
// 调试功能(仅开发环境)
options.debug(false);
})
.listen();

配置最佳实践

  1. 性能优化

    • 根据应用特性和硬件资源合理设置线程数
    • 通过压测确定最优的缓冲区大小
    • 在生产环境关闭调试功能
  2. 安全防护

    • 设置合理的请求大小限制和请求头数量限制
    • 修改默认的服务器名称,避免暴露版本信息
    • 在生产环境禁用 banner 显示
  3. 资源管理

    • 避免设置过大的缓冲区,合理使用内存资源
    • 定期检查服务器性能指标,及时调整配置
    • 结合监控系统,观察配置变更对性能的影响