字节跳动开源的一个 Golang 微服务 HTTP 框架

Posted 非著名程序员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字节跳动开源的一个 Golang 微服务 HTTP 框架相关的知识,希望对你有一定的参考价值。

【公众号回复 “1024”,免费领取程序员赚钱实操经验】

大家好,我是章鱼猫。

今天推荐的这个项目是「Hertz」,是一个 Golang 微服务 HTTP 框架,在设计之初参考了其他开源框架 fasthttp、gin、echo 的优势,并结合字节跳动内部的需求,使其具有高易用性、高性能、高扩展性等特点,目前在字节跳动内部已广泛使用。

如今越来越多的微服务选择使用 Golang,如果对微服务性能有要求,又希望框架能够充分满足内部的可定制化需求,Hertz 会是一个不错的选择。

框架特点

1、高易用性

在开发过程中,快速写出来正确的代码往往是更重要的。因此,在 Hertz 在迭代过程中,积极听取用户意见,持续打磨框架,希望为用户提供一个更好的使用体验,帮助用户更快的写出正确的代码。

2、高性能

Hertz 默认使用自研的高性能网络库 Netpoll,在一些特殊场景相较于 go net,Hertz 在 QPS、时延上均具有一定优势。关于性能数据,可参考下图 Echo 数据。

3、高扩展性

Hertz 采用了分层设计,提供了较多的接口以及默认的扩展实现,用户也可以自行扩展。同时得益于框架的分层设计,框架的扩展性也会大很多。

4、多协议支持

Hertz 框架原生提供 HTTP1.1、ALPN 协议支持。除此之外,由于分层设计,Hertz 甚至支持自定义构建协议解析逻辑,以满足协议层扩展的任意需求。

5、网络层切换能力

Hertz 实现了 Netpoll 和 Golang 原生网络库 间按需切换能力,用户可以针对不同的场景选择合适的网络库,同时也支持以插件的方式为 Hertz 扩展网络库实现。

开源项目地址:https://github.com/cloudwego/hertz

开源项目组织:CloudWeGo

推荐阅读

重磅推荐:一款基于 GitHub 的 Web 笔记应用

整洁架构代码模板推荐

手把手教你实现一个在线魔方

最近,章鱼猫建了一个「GitHub 精选交流群」,欢迎大家一起交流优秀开源项目,也可以宣传自己的开源项目,在 「GitHub 黑板报」公众号后台回复【加群】邀请你入群。

---特别推荐---

特别推荐:一个新的优质的专注分享各种浏览器插件、黑科技教程、各种你想不到的高效率软件及工具的公众号,「程序员掘金」,专注挖掘好东西,非常值得大家关注。点击下方公众号卡片,直接关注

以上是关于字节跳动开源的一个 Golang 微服务 HTTP 框架的主要内容,如果未能解决你的问题,请参考以下文章

字节跳动是如何落地微前端的

高性能 RPC 框架 CloudWeGo-Kitex 内外统一的开源实践

深度 | 字节跳动微服务架构体系演进

字节跳动微服务架构体系演进

字节跳动最新开源!国内一线互联网公司面试题汇总,月薪30K

面试阿里,字节跳动90%会被问到的微服务,你确定不进来看看吗?