English | 中文
Hertz [həːts] 是一个高可用性、高性能和高扩展性的Golang HTTP框架,可帮助开发人员构建微服务。它参考了其他开源框架如fasthttp、gin、echo的设计,并结合了字节跳动内部的需求。目前,它已在字节跳动内部广泛使用。如今,越来越多的微服务使用Golang。如果您对微服务性能有要求,并希望框架能够完全满足内部定制需求,Hertz将是一个不错的选择。
高可用性
在开发过程中,快速编写正确的代码往往更为重要。因此,在Hertz的迭代过程中,我们积极听取用户意见并不断完善框架,希望为用户提供更好的使用体验,帮 助用户更快地编写正确的代码。
高性能
Hertz默认使用自研的高性能网络库Netpoll。在某些特殊场景下,与Go Net相比,Hertz在QPS和延迟方面具有一定优势。性能数据请参考下图中的Echo数据。
四个框架的比较:
三个框架的比较:
详细性能数据请参考hertz-benchmark。
高扩展性
Hertz采用分层设计,提供更多接口和默认扩展实现。用户也可以自行扩展。同时,得益于框架的分层设计,框架的扩展性将大大增强。目前,只有稳定的功能对社区开源。更多规划请参考RoadMap。
多协议支持
Hertz框架原生提供HTTP/1.1、HTTP/2、HTTP/3和ALPN协议支持。此外,由于采用分层设计,Hertz甚至支持自定义构建协议解析逻辑,以满足任何协议层扩展需求。
网络层切换能力
Hertz实现了按需在Netpoll和Go Net之间切换的功能。用户可以为不同场景选择合适的网络库。同时,Hertz还支持以插件形式扩展网络库。
Hertz-Examples仓库提供开箱即用的代码。更多
包含常用中间件、上下文选择、数据绑定、数据渲染、直接访问、日志记录、错误处理的介绍和使用。更多
包含检测、日志记录、追踪、监控、OpenTelemetry 集成。更多
包含服务注册与发现扩展、Sentinel集成。更多
包含网络库扩展。更多
API文档、框架可配置项列表。更多
常见问题解答。更多
性能测试只能提供相对参考。在生产环境中,有许多因素会影响实际性能。 我们提供了hertz-benchmark项目,用于跟踪和比较Hertz与其他框架在不同情况下的性能,供参考。
扩展 | 描述 |
---|---|
Autotls | 让 Hertz 支持 Let's Encrypt。 |
Http2 | 为 Hertz 提供 HTTP2 支持。 |
Websocket | 使 Hertz 支持 Websocket 协议。 |
Etag | 为 Hertz 提供 ETag(或实体标签)HTTP 响应头支持。 |
Limiter | 提供基于 BBR 算法的限流器。 |
Monitor-prometheus | 提供基于 Prometheus 的服务监控。 |
Obs-opentelemetry | Hertz 的 Opentelemetry 扩展,支持指标、日志、追踪,开箱即用。 |
Opensergo | Opensergo 扩展。 |
Pprof | Hertz 集成 Pprof 的扩展。 |
Registry | 提供服务注册和发现功能。目前支持的服务发现扩展有 nacos、consul、etcd、eureka、polaris、servicecomb、zookeeper、redis。 |
Sentry | Sentry 扩展提供一些统一接口,帮助用户进行实时错误监控。 |
Tracer | 基于 Opentracing 的链路追踪。 |
Basicauth | Basicauth 中间件可提供 HTTP 基本认证。 |
Jwt | JWT 扩展。 |
Keyauth | 提供基于令牌的身份验证。 |
Requestid | 在响应中添加请求 ID。 |
Sessions | 支持多状态存储的会话中间件。 |
Casbin | 通过 Casbin 支持各种访问控制模型。 |
Cors | 提供跨域资源共 享支持。 |
Csrf | Csrf 中间件用于防止跨站请求伪造攻击。 |
Secure | 具有多个配置项的安全中间件。 |
Gzip | 具有多个选项的 Gzip 扩展。 |
I18n | 帮助将 Hertz 程序翻译成多种编程语言。 |
Lark | 使用 Hertz 处理飞书卡片消息和事件回调。 |
Loadbalance | 为 Hertz 提供负载均衡算法。 |
Logger | Hertz 的日志扩展,提供对 zap、logrus、zerologs 日志框架的支持。 |
Recovery | Hertz 的恢复中间件。 |
Reverseproxy | 实现反向代理。 |
Swagger | 使用 Swagger 2.0 自动生成 RESTful API 文档。 |
Cache | Hertz 中间件,用于缓存 HTTP 响应,支持多种后端。 |
Hertz 根据 Apache License 2.0 进行分发。Hertz 第三方依赖的许可证在这里说明。
感谢您对 Hertz 的贡献!
AI数字人视频创作平台
Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。
一站式AI创作平台
提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作
AI办公助手,复杂任务高效处理
AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!
AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
AI小说写作助手,一站式润色、改写、扩写
蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。
全能AI智能助手,随时解答生活与工作的多样问题
问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。
实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。
一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型
Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号