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();
配置最佳实践
-
性能优化
- 根据应用特性和硬件资源合理设置线程数
- 通过压测确定最优的缓冲区大小
- 在生产环境关闭调试功能
-
安全防护
- 设置合理的请求大小限制和请求头数量限制
- 修改默认的服务器名称,避免暴露版本信息
- 在生产环境禁用 banner 显示
-
资源管理
- 避免设置过大的缓冲区,合理使用内存资源
- 定期检查服务器性能指标,及时调整配置
- 结合监控系统,观察配置变更对性能的影响