hoteas 25faa93724 feat(log): 多源 clientIP 降级与去重 ip_chain
按 EO→XFF非回环→X-Real→RemoteAddr 选取 ip;访问日志附带去重 ip_chain;登录限流改用 clientIP。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-23 06:04:43 +08:00
2021-05-25 20:27:24 +08:00
2022-03-13 01:48:54 +08:00
2019-05-19 15:33:01 +00:00
2022-03-13 01:48:54 +08:00

HoTime

高性能 Go Web 服务框架

一个"小而全"的 Go Web 框架,内置 ORM、三级缓存、Session 管理,让你专注于业务逻辑。

核心特性

  • 高性能 - 单机 10万+ QPS,支持百万级并发用户
  • 内置 ORM - 类 Medoo 语法,链式查询,支持 MySQL/SQLite/PostgreSQL
  • 三级缓存 - Memory > Redis > DB,自动穿透与回填
  • Session 管理 - 内置会话管理,支持多种存储后端
  • 代码生成 - 根据数据库表自动生成 CRUD 接口
  • API 测试 - 内置接口测试框架,链式 API、事务自动回滚、覆盖率报告、交互式调试控制台
  • 优雅停机 - 跨平台(Windows/Linux)支持,停机时自动拒绝新请求并等待在途请求完成,配合 nginx 实现零停机滚动重启
  • 结构化日志 / Seq 集成 - zerolog 驱动,异步 channel 队列推送,零阻塞接入 Seq 集中搜索,自动捕获 fmt.Println 等全量输出,支持单机多进程实例区分
  • 开箱即用 - 微信支付/公众号/小程序、阿里云、腾讯云等 SDK 内置

文档

完整阅读路径见 docs/README.md

文档 说明
快速上手 5 分钟入门:安装配置、路由、中间件
HoTimeDB 使用说明 完整数据库 ORM 教程
HoTimeDB API 参考 数据库 API 速查手册
Common 工具类 Map/Slice/Obj 类型、类型转换、工具函数
数据库设计规范 表命名、字段命名、COMMENT、必有字段(CodeGen 前置)
代码生成 自动 CRUD 生成 + codeConfig / rule 配置
API 测试框架 接口测试、事务隔离、覆盖率、调试控制台
优雅停机 跨平台优雅停机、nginx、滚动重启
Seq 日志集成 Seq 接入、异步队列、多实例区分
改进规划 待改进项与版本迭代规划

安装

go get code.hoteas.com/golang/hotime

性能

并发数 QPS 成功率 平均延迟
500 99,960 100% 5.0ms
1000 102,489 100% 9.7ms
2000 75,801 99.99% 26.2ms

测试环境:24 核 CPUWindows 10Go 1.19.3

并发用户估算

使用场景 请求频率 可支持用户数
高频交互 1次/秒 ~10万
活跃用户 1次/5秒 ~50万
普通浏览 1次/10秒 ~100万

框架对比

特性 HoTime Gin Echo Fiber
性能 100K QPS 70K QPS 70K QPS 100K QPS
内置ORM
内置缓存 三级缓存
Session 内置 需插件 需插件 需插件
代码生成
API 测试框架 内置 需插件 需插件 需插件
优雅停机 内置跨平台 需自行实现 需自行实现 内置
微信/支付集成 内置

适用场景

场景 推荐度 说明
中小型后台系统 完美适配,开发效率最高
微信小程序后端 内置微信 SDK
快速原型开发 代码生成 + 全功能集成
高并发 API 服务 性能足够
大型微服务 建议用 Gin/Echo

扩展功能

  • 微信支付/公众号/小程序 - dri/wechat/
  • 阿里云服务 - dri/aliyun/
  • 腾讯云服务 - dri/tencent/
  • 文件上传下载 - dri/upload/, dri/download/
  • MongoDB - dri/mongodb/
  • RSA 加解密 - dri/rsa/

License

Apache License 2.0


HoTime - 让 Go Web 开发更简单、更高效

S
Description
No description provided
Readme Apache-2.0 283 MiB
v1.7.305 Latest
2026-07-24 05:45:02 +08:00
Languages
JavaScript 84.8%
Go 15.2%