这是我参与「第五届青训营」伴学笔记创作活动的第 7 天
后面要开始进阶篇的学习
Hertz的分享
字节跳动内部被超大规模使用的高性能 Golang HTTP 框架
内部支撑 17k+ 业务服务、峰值 QPS 超过 7000 万、横向支持了各类组件(service mesh、网关、faas等)
CloudWeGo 核心开源项目之-: 2022 年 6 月开源,代码内外一致
四层设计(github.com/cloudwego/h…
Application 提供一些基础Api,Client函数的基础调用
Route 提供基础路由注册方法,核心的路由结构engine,也有基础Api
Protocol 协议层,实现不同HTTP协议的解析,实现协议的接口,可自定义
Transport 传输层,介入了各种网络库,可自定义,进程间加速等
Common包 Hz代码生成工具,写idl可生成代码
特点:
①易用性
文档Hertz | CloudWeGo
提供了Hz脚手架工具,根据接口定义IDL自动化生成项目骨架,帮助业务聚焦核心逻辑——统一规范 提高效率
②拓展性网络库扩展 | CloudWeGo
网络层:
基于连接的网络库:CloudWeGo开源的Netpoll,Golang原生网络库net Netpoll(github.com/cloudwego/n…)
基于流的网络库:quic-go网络库(github.com/quic-go/qui…)
协议层:协议扩展 | CloudWeGo
支持HTTP/1.1、HTTP/2、HTTP/3、Websocket、自定义协议协议扩展 | CloudWeGo
应用层:中间件概览 | CloudWeGo
支持pprof、gzip、i18n、csrf、反向代理等常见中间件拓展
新功能:
Client代码生成 Hz自定义模板(layout模板,package模板)
接下来就是一些答疑
GMP调度,go func(){}()