字节跳动开源的一个golang微服务http框架

非著名程序员 非著名程序员     2023-03-13     708

关键词:

【公众号回复 “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 黑板报」公众号后台回复【加群】邀请你入群。

---特别推荐---

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

高性能rpc框架cloudwego-kitex内外统一的开源实践

日前,字节跳动技术社区ByteTech举办的第七期字节跳动技术沙龙圆满落幕,本期沙龙以《字节高性能开源微服务框架:CloudWeGo》为主题。在沙龙中,字节跳动字节跳动基础架构服务框架资深研发工程师杨芮,跟... 查看详情

牛逼,字节跳动又一开源大作!程序员的福音!

...对AndroidApp的PLThook框架。这个框架也是最近才开源,字节跳动团队 查看详情

字节跳动如何从0到1打造一个开源项目?

本文整理自51CTO开源基础软件学习季的直播公开课《字节跳动的开源实践与思考》 像很多公司一样,字节跳动接触开源也有一个从0到1、由浅入深的过程,大体经历三个阶段: 第一阶段,使用开源。为了推动业务更快发... 查看详情

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

1、您对微服务有何了解?微服务:又称微服务架构,是一种架构风格,它将应用程序构建为以业务领域为模型的小型自治服务集合。通俗地说,你必须看到蜜蜂如何通过对齐六角形蜡细胞来构建它们的蜂窝状物。他们最初从使... 查看详情

和字节跳动大牛的技术面谈

前言这期我想写很久了,但是因为时间的原因一直拖到了现在,我以为一两天就写完了,结果从构思到整理资料,再到写出来用了差不多一周的时间吧。你们也知道作者一直都是创作鬼才来的,所以我肯定不... 查看详情

字节跳动+阿里+华为+小米等10家大厂面试真题,成长路线图

面试真题以及解析Web,RESTfulAPI在微服务中的作用是什么?微服务架构基于一个概念,其中所有服务应该能够彼此交互以构建业务功能。因此,要实现这一点,每个微服务必须具有接口。这使得WebAPI成为微服务... 查看详情

10个优秀的golang开源库类,武装生产力(代码片段)

一、Http框架Gin推荐指数:⭐⭐⭐⭐⭐GitHub地址:https://github.com/gin-gonic/ginGin是一个用Go(Golang)编写得HTTPweb框架,拥有更好性能得API框架,文档非常完全,很多微服务也很方便集成。Gin绝对优秀~touchexam... 查看详情

字节跳动资深面试官亲述:java异步回调接口

Linux专题微服务专题微服务架构有哪些优势?微服务有哪些特点?设计微服务的最佳实践是什么?微服务架构如何运作?微服务架构的优缺点是什么?单片,SOA和微服务架构有什么区别?在使用微服务... 查看详情

揭秘字节跳动云原生sparkhistory服务uiservice

本文是字节跳动数据平台数据引擎SparkSQL团队针对SparkHistoryServer(SHS)的优化实践分享。*文|字节跳动数据平台—数据引擎—SparkSQL团队*在字节跳动内部,我们实现了一套全新的云原生SparkHistory服务——UIService,相比开源的SHS,UIServ... 查看详情

golang微框架gin简介

...得心应手的时候,可以尝试改造一些框架,或是自己创造一个。曾经我以为Python世界里的框架已经够多了,后来发现相比golang简直小巫见大巫。golang提供的net/http库已经很好了,对于http的协 查看详情

微服务架构洁介绍及开源框架

微服务现在是一个很火的概念,尤其是搞IT的大多数都对其有所了解。到底火到什么程度呢?2016年有一个统计说,两千家企业里,30%在使用微服务,15%在实验开发和测试微服务架构,24%在学习微服务准备转型,只有剩下的30%的企... 查看详情

字节跳动最新开源!docker服务重启

1、上下文切换上下文定义cpu发生进程或者线程切换时,所依赖的数据集合,比如一个函数有外部变量,函数运行时,必须获取外部变量,这些变量值的集合就是上下文。引发问题对于CPU密集型任务,多线... 查看详情

字节跳动开源数据集成引擎bitsail的演进历程与能力解析

导读BitSail是字节跳动开源数据集成引擎,支持多种异构数据源间的数据同步,并提供离线、实时、全量、增量场景下全域数据集成解决方案,目前支撑了字节内部和火山引擎多个客户的数据集成需求。经过字节跳动各大业务线... 查看详情

字节跳动前技术总监开源分享《android架构设计权威指南》,yyds!

架构就像是一场进化史,根据不同时期的需求,演变出不同的架构,车轮滚滚,到今天,移动端框架百花齐放,让人目不暇接。但是其中的本质是磨灭不了的,换言之根本没有磨灭而是隐藏到了人们所... 查看详情

微服务架构开源框架详情介绍

...概念,很多IT行业的人对这个概念并不陌生。微服务架构开源框架的兴起自然离不开大环境的需求,也是数字化转型时期的重要产物。流辰信息想行业之所需,潜心研发出的IBPS微服务架构得到了行业内的认可和赞许,是助阵企业... 查看详情

微服务rpc框架选美

... Hello,everybody!说到RPC框架,可能大家能想到一堆RPC开源框架,那么在微服务平台中,微服务间的服务调用,不可避免的会遇到一个问题,该选用哪一个RPC框架好呢?今天我们就请到三位RPC框架,来进行一场选美大赛,看看... 查看详情

开源微服务编排框架:netflixconductor(代码片段)

...主要运行机制。一简介netflixconductor是基于JAVA语言编写的开源流程引擎,用于架构基于微服务的流程。它具备如下特性:允许创建复杂的业务流程,流程中每个独立的任务都是由一个微服务所实现。基于JSONDSL创建工作... 查看详情

golang微框架gin简介(代码片段)

...得心应手的时候,可以尝试改造一些框架,或是自己创造一个。曾经我以为Python世界里的框架已经够多了,后来发现相比golang简直小巫见大巫。golang提供的net/http库已经很好了,对于 查看详情