【Go语言高性能框架Hertz深度解析】:揭秘字节跳动内部微服务架构核心利器

第一章:Hertz框架概述与核心设计理念

Hertz 是一款高性能、可扩展的 Go 语言微服务框架,专为构建大规模分布式系统而设计。其核心目标是提供简洁的 API 接口与极致的运行效率,同时保持良好的可维护性与模块化结构。

设计哲学与架构特点

Hertz 遵循“约定优于配置”的原则,强调开发者体验与生产级稳定性。它采用分层架构,将路由、中间件、序列化和网络传输解耦,便于定制与扩展。
  • 高性能异步处理:基于 Netpoll 网络模型实现零拷贝数据读写
  • 灵活的中间件机制:支持请求前/后置钩子,便于日志、鉴权等通用逻辑注入
  • 多协议支持:除默认 HTTP/HTTPS 外,可扩展 gRPC、WebSocket 等通信协议

快速启动示例

以下是一个基础服务启动代码,展示 Hertz 的极简使用方式:
// main.go
package main

import (
    "context"
    "github.com/cloudwego/hertz/pkg/app"
    "github.com/cloudwego/hertz/pkg/app/server"
    "github.com/cloudwego/hertz/pkg/protocol/consts"
)

func main() {
    // 创建 Hertz 服务器实例
    h := server.Default()
    
    // 注册 GET 路由,返回 JSON 响应
    h.GET("/ping", func(ctx context.Context, c *app.RequestContext) {
        c.JSON(consts.StatusOK, map[string]string{
            "message": "pong",
        })
    })
    
    // 启动服务器,默认监听 :8888
    h.SERVE()
}
上述代码通过 server.Default() 初始化服务器,注册一个简单的 JSON 接口,并调用 SERVE() 启动监听。整个过程无需复杂配置即可运行。

核心组件对比

特性Hertz标准 net/http
吞吐量(QPS)≥ 150,000~ 80,000
内存占用低中等
中间件链支持支持嵌套与优先级控制需手动封装

第二章:Hertz高性能网络模型解析

2.1 基于Netpoll的I/O多路复用机制原理

Netpoll 是 Go 运行时底层网络轮询器的核心组件,负责管理大量并发连接的 I/O 事件。它封装了操作系统提供的高效 I/O 多路复用机制(如 Linux 的 epoll、BSD 的 kqueue),实现非阻塞式事件驱动。
事件驱动模型
Netpoll 将文件描述符注册到内核事件表中,当某个连接有可读或可写事件时,内核通知 Netpoll 获取就绪事件,Go 调度器唤醒对应 goroutine 处理数据。
// 伪代码:Netpoll 事件注册
func (pd *pollDesc) init(fd *FD) error {
    return runtime_pollOpen(uintptr(fd.Sysfd))
}
该调用将文件描述符交由 runtime 管理,建立与 netpoll 的关联,后续通过 runtime_pollWait 挂起 goroutine 直至事件就绪。
性能优势对比
机制连接数扩展性系统调用开销
select有限(通常1024)高(线性扫描)
epoll极高(百万级)低(仅就绪事件)

2.2 零拷贝数据传输在Hertz中的实践应用

零拷贝的核心优势
在高性能网络框架中,减少CPU和内存开销是提升吞吐的关键。Hertz通过启用零拷贝机制,避免了传统I/O中多次用户态与内核态间的数据复制。
实现方式:使用io.ReaderFrom
Hertz底层基于Netpoll或Gorilla等高性能网络库,支持通过io.ReaderFrom接口直接调用sendfile或splice系统调用:

conn.WriteFrom(reader, length) // 零拷贝写入
该方法将文件描述符直接传递给操作系统,数据无需经过用户缓冲区,显著降低内存占用与上下文切换成本。
应用场景对比
场景传统拷贝零拷贝
大文件传输高延迟,多副本低延迟,单次传输
高并发API响应CPU占用高资源消耗显著下降

2.3 高并发场景下的连接管理与性能优化

在高并发系统中,数据库连接和网络资源的高效管理直接影响整体性能。频繁创建和销毁连接会带来显著的开销,因此引入连接池机制成为关键优化手段。
连接池配置策略
合理设置最大连接数、空闲超时和等待队列能有效避免资源耗尽:
  • maxOpenConns:控制最大并发活跃连接数,防止数据库过载;
  • maxIdleConns:维持一定数量的空闲连接,减少新建开销;
  • connMaxLifetime:设置连接生命周期,避免长时间运行导致的内存泄漏。
Go语言连接池示例
db, err := sql.Open("mysql", dsn)
db.SetMaxOpenConns(100)
db.SetMaxIdleConns(10)
db.SetConnMaxLifetime(time.Hour)
上述代码通过SetMaxOpenConns限制总连接数,SetConnMaxLifetime定期回收老化连接,避免因长时间运行引发的连接异常,提升服务稳定性。

2.4 异步处理与协程池的设计与实现

在高并发系统中,异步处理是提升吞吐量的关键。通过协程池控制并发数量,既能充分利用资源,又能避免协程爆炸带来的性能下降。
协程池核心结构
协程池由任务队列和固定数量的工作协程组成,动态调度任务执行。

type Pool struct {
    workers int
    tasks   chan func()
}

func NewPool(workers, queueSize int) *Pool {
    return &Pool{
        workers: workers,
        tasks:   make(chan func(), queueSize),
    }
}

func (p *Pool) Start() {
    for i := 0; i < p.workers; i++ {
        go func() {
            for task := range p.tasks {
                task()
            }
        }()
    }
}
上述代码中,workers 控制并发协程数,tasks 为缓冲通道,实现任务队列。启动时,每个工作协程持续从通道读取任务并执行。
使用场景与优势
  • 适用于I/O密集型任务,如网络请求、文件读写
  • 减少协程创建开销,防止内存溢出
  • 统一管理生命周期,便于错误处理与监控

2.5 性能压测对比:Hertz vs Gin vs Echo

在高并发场景下,Go语言Web框架的性能差异显著。本节通过基准压测对比Hertz、Gin与Echo的吞吐能力与延迟表现。
测试环境与指标
压测基于相同硬件配置(Intel i7-12700K, 32GB RAM, Go 1.21),使用go-http-benchmark工具发起10万次请求,并发数为1000,主要观测QPS、P99延迟和内存占用。
性能数据对比
框架QPSP99延迟(ms)内存占用(MB)
Hertz86,42018.342.1
Gin79,15022.751.3
Echo76,89024.153.6
典型路由处理代码示例
func main() {
    r := gin.Default()
    r.GET("/ping", func(c *gin.Context) {
        c.JSON(200, gin.H{"message": "pong"})
    })
    r.Run(":8080")
}
该代码定义了一个基础HTTP接口,Gin通过静态路由树优化匹配效率,而Hertz基于Netpoll事件驱动模型进一步降低I/O等待开销,从而在高并发下表现出更优的响应速度与资源利用率。

第三章:路由与中间件架构深度剖析

3.1 高效路由树(Radix Tree)匹配机制解析

核心结构与匹配原理
Radix Tree(基数树)是一种空间优化的前缀树,广泛应用于高性能路由匹配场景。其通过共享前缀路径压缩节点,显著降低内存占用并提升查找效率。
  • 每个节点代表一个公共前缀路径
  • 边(edge)携带字符或字节片段信息
  • 支持精确匹配与最长前缀匹配
典型代码实现示例

type RadixNode struct {
    prefix string
    children map[byte]*RadixNode
    isLeaf bool
}

func (n *RadixNode) Insert(path string) {
    // 按字节逐段匹配并拆分前缀
    current := n
    for len(path) > 0 {
        exists := false
        for b, child := range current.children {
            common := longestCommonPrefix(path, child.prefix)
            if common == 0 { continue }
            ...
        }
    }
}
上述代码展示了插入逻辑:通过比较路径前缀,动态构建或分裂节点,确保路径压缩特性。参数 path 为待插入路由规则,longestCommonPrefix 计算最长公共前缀长度,决定是否需要节点分裂。
性能对比分析
结构时间复杂度空间使用
哈希表O(1)高
普通TrieO(L)极高
Radix TreeO(L)低
其中 L 为路径长度。Radix Tree 在保持合理时间效率的同时大幅优化空间开销。

3.2 中间件链式调用模型与执行流程分析

在现代Web框架中,中间件链式调用是处理HTTP请求的核心机制。通过将多个中间件函数按顺序串联,形成一条“责任链”,每个中间件可对请求和响应进行预处理或后置操作。
执行流程解析
请求进入时,依次经过注册的中间件。每个中间件决定是否继续调用下一个(next()),否则终止流程。
func Logger(next http.HandlerFunc) http.HandlerFunc {
    return func(w http.ResponseWriter, r *http.Request) {
        log.Printf("%s %s", r.Method, r.URL.Path)
        next(w, r) // 调用链中的下一个中间件
    }
}
上述Go语言示例展示了日志中间件如何记录请求信息并传递控制权。参数next为下一环节函数,确保链式调用不中断。
中间件执行顺序
  • 注册顺序决定执行顺序
  • 前置逻辑在next()前执行
  • 后置逻辑在next()后执行

3.3 自定义中间件开发实战:日志与限流

中间件设计原则
在Go语言中,中间件通常以函数链的形式嵌套调用。每个中间件接收并返回http.HandlerFunc,实现请求的前置处理。
日志中间件实现
func LoggingMiddleware(next http.HandlerFunc) http.HandlerFunc {
    return func(w http.ResponseWriter, r *http.Request) {
        log.Printf("%s %s %s", r.RemoteAddr, r.Method, r.URL)
        next(w, r)
    }
}
该中间件在请求处理前记录客户端IP、HTTP方法和访问路径,便于后续审计与调试。
基于令牌桶的限流中间件
  • 使用golang.org/x/time/rate实现速率控制
  • 每秒允许10个请求,突发容量为5
func RateLimitMiddleware(next http.HandlerFunc) http.HandlerFunc {
    limiter := rate.NewLimiter(10, 5)
    return func(w http.ResponseWriter, r *http.Request) {
        if !limiter.Allow() {
            http.StatusTooManyRequests, w.WriteHeader()
            return
        }
        next(w, r)
    }
}
通过令牌桶算法平滑控制流量,避免后端服务过载。

第四章:Hertz在微服务架构中的工程实践

4.1 集成gRPC实现服务间高效通信

选择gRPC的优势
gRPC基于HTTP/2协议,支持双向流、头部压缩和多语言生成代码,显著提升微服务间的通信效率。相比传统REST,其使用Protocol Buffers序列化数据,减少网络开销。
定义服务接口
通过`.proto`文件定义服务契约:
syntax = "proto3";
package service;

service UserService {
  rpc GetUser (UserRequest) returns (UserResponse);
}

message UserRequest {
  string user_id = 1;
}
message UserResponse {
  string name = 1;
  int32 age = 2;
}
上述定义生成强类型客户端与服务端接口,确保通信一致性。
集成流程
  • 安装protoc编译器及Go插件
  • 编译.proto文件生成Go代码
  • 在Gin或gRPC服务中注册实现逻辑
图表:gRPC调用流程 — 客户端Stub → HTTP/2传输 → 服务端Skeleton处理

4.2 与Kitex框架协同构建完整微服务体系

在微服务架构中,Kitex作为高性能的RPC框架,承担核心通信职责。通过与其深度集成,可实现服务注册、配置管理、链路追踪等体系的统一。
服务注册与发现
Kitex支持多注册中心(如Nacos、ETCD),通过中间件机制自动注册服务实例:

client := xxxservice.NewClient(
    client.WithRegistry(nacosRegistry),
    client.WithMiddleware(Tracing()),
)
上述代码配置了Nacos注册中心并启用链路追踪中间件,确保服务启动时自动注册并接入可观测性体系。
统一通信协议
采用Thrift定义接口契约,生成高效序列化代码,提升跨语言互通性:
  • IDL文件统一管理API结构
  • 生成代码保证类型安全
  • 降低团队沟通成本

4.3 服务注册与发现:Nacos/Etcd集成方案

在微服务架构中,服务注册与发现是实现动态扩缩容和高可用的关键环节。Nacos 和 Etcd 作为主流的注册中心组件,分别提供了丰富的服务治理能力。
核心特性对比
  • Nacos:支持 DNS 和 API 两种服务发现方式,内置配置管理、健康检查和元数据管理。
  • Etcd:基于 Raft 一致性算法,适用于强一致场景,常用于 Kubernetes 底层服务发现。
Go 语言集成示例(Nacos)

// 初始化 Nacos 客户端
client := clients.NewNamingClient(vo.NacosClientParam{
    ClientConfig:  &constant.ClientConfig{TimeoutMs: 5000},
    ServerConfigs: []constant.ServerConfig{{IpAddr: "127.0.0.1", Port: 8848}},
})
// 注册服务实例
client.RegisterInstance(vo.RegisterInstanceParam{
    Ip:          "192.168.1.100",
    Port:        8080,
    ServiceName: "user-service",
    Weight:      1.0,
    Enable:      true,
})
上述代码通过指定 Nacos 服务器地址完成客户端初始化,并将当前服务以 IP 和端口形式注册至注册中心。参数 Weight 控制负载均衡权重,Enable 决定是否接收流量。
数据同步机制
服务实例状态通过心跳机制定期上报,Nacos 默认每 5 秒检测一次健康状态;Etcd 则利用租约(Lease)与 TTL 实现自动过期清理。

4.4 分布式追踪与监控体系搭建

在微服务架构中,请求往往横跨多个服务节点,传统的日志排查方式难以定位性能瓶颈。为此,分布式追踪系统成为可观测性的核心组件。
核心组件与数据模型
分布式追踪通过Trace和Span构建调用链路。每个Span代表一个操作单元,包含时间戳、标签、日志和上下文信息。
{
  "traceId": "abc123",
  "spanId": "def456",
  "serviceName": "user-service",
  "operationName": "GET /user/1",
  "startTime": 1678801200000000,
  "duration": 15000
}
该JSON结构表示一次Span记录,traceId用于全局唯一标识一次请求链路,spanId标识当前节点,duration以微秒为单位衡量耗时。
主流技术选型对比
方案协议支持后端存储集成难度
JaegerOpenTelemetry, ZipkinCassandra, Elasticsearch中等
ZipkinHTTP, Kafka内存, MySQL低

第五章:未来演进方向与生态展望

随着云原生技术的不断成熟,Kubernetes 已从单纯的容器编排平台演变为支撑现代应用架构的核心基础设施。在本章中,我们将深入探讨 Kubernetes 生态未来的演进趋势,并结合实际案例分析其在边缘计算、AI 调度、服务网格等领域的扩展路径。
边缘场景下的轻量化部署
面对物联网和 5G 的爆发式增长,边缘节点对资源敏感且网络环境复杂。OpenYurt 和 K3s 等项目正推动 Kubernetes 向轻量化转型。以某智能交通系统为例,该系统在城市路口部署了 200+ 边缘网关,每个设备仅配备 1GB 内存。通过 K3s 替换标准 kubelet 组件,并启用 SQLite 作为本地存储后端,集群启动时间缩短至 8 秒以内,资源占用降低 60%。以下为关键组件对比:
组件Kubernetes (标准)K3s
二进制大小~200MB~40MB
内存占用(空闲)256MB+~50MB
依赖组件etcd, kube-apiserver 等嵌入式数据库 + 单进程模型
AI 工作负载的统一调度架构
越来越多企业尝试将训练任务纳入 Kubernetes 集群管理。某金融科技公司在其风控模型迭代中,采用 Kubeflow 构建 MLOps 流水线。每当 GitLab 提交新代码,Argo Workflows 自动触发 CI/CD 流程,包括数据预处理、分布式训练(使用 PyTorchJob)、模型验证与部署。以下是典型的训练作业定义片段:
apiVersion: kubeflow.org/v1
kind: PyTorchJob
metadata:
  name: fraud-detection-train
spec:
  pytorchReplicaSpecs:
    Master:
      replicas: 1
      template:
        spec:
          containers:
            - name: pytorch
              image: ai-training:v2.3
              command: ["python", "train.py"]
              resources:
                limits:
                  nvidia.com/gpu: 1
    Worker:
      replicas: 4
      template:
        spec:
          containers:
            - name: pytorch
              image: ai-training:v2.3
              resources:
                limits:
                  nvidia.com/gpu: 1
服务网格与零信任安全集成
Istio 正在向 eBPF 和 WASM 插件方向演进,提升流量控制性能。某电商平台将其核心订单服务迁移至 Istio 1.20 后,利用基于 eBPF 的透明拦截机制,避免 iptables 性能瓶颈,在双十一大促期间支撑每秒 12 万次请求,延迟 P99 控制在 18ms 以内。 以下是一个简化的服务拓扑 SVG 图表示例,展示微服务间调用关系及安全策略注入点: API Gateway Order Service Payment mTLS Enabled JWT Auth
go 整合网关Hertz Hertz 网关是一个微服务网关,由CloudWeGo团队开发,于2021年正式发布。它基于Go语言编写,支持HTTP/gRPC/Thrift协议,具备高并发、高性能、高可用等特性,可以部署在Kubernetes环境中。Hertz 网关具有动态路由、限流、熔断、黑白名单、认证鉴权等功能,并且支持可插拔的扩展机制。 阅读详情

相关推荐

字节跳动 Go RPC 框架 KiteX 性能优化实践

外链图片转存中…(img-hQWdwdDk-1712396160582)]

2401_84132176的博客 1197

解读开源 Go HTTP 框架 Hertz | 服务注册拓展实现

在参与 Hertz 框架的开发迭代过程中,对 Hertz 的主库也越来越熟悉。接下来的几篇文章我将分别解析 Hertz 的服务注册、服务发现和负载均衡拓展,最后会使用适配于 Hertz 的 etcd 拓展进行实战,欢迎大家关注。

Lance_Yuan24的博客 1242

基于 Hertz 和 Kitex 的 Go 微服务项目 | 开源项目推荐

目录介绍Server项目核心部分Shared可复用代码Static前端静态文件这个项目还是花费的不少时间,欢迎大家学习,如果 Star 是对我们最大的鼓励!

Lance_Yuan24的博客 2537

golang入门笔记——Hertz

Hertz是字节跳动研发的企业级微服务HTTP框架,具有高易用性、易扩展、低时延等特点。是基于自研网络库Netpoll开发的内部框架Hertz。Hertz框架整体上满足:1.极致性能优化的问题性2.面对未来不可控需求的扩展能力,Hertz采用了4层分层设计(应用层、路由层、协议层、传输层),保证各个层级功能内聚,同时通过层级之间的接口达到灵活扩展的目标。

qq_43716830的博客 5175

Go框架三件套(Web/RPC/ORM)

Gorm 是一个已经迭代了10+年的功能强大的 ORM 框架,在字节内部被广泛使用并且拥有非常丰富的开源扩展。Kitex 是字节内部的 Golang 微服务RPC 框架,具有高性能、强可扩展的主要特点,支持多协议并且拥有丰富的开源扩展。Hertz 是字节内部的 HTTP 框架,参考了其他开源框架的优势,结合字节跳动内部的需求,具有高易用性、高性能、高扩展性特点。

qq_41847894的博客 1062

Cobalt Strike4.0安装包(内附中文版)

1.什么是 Cobalt Strike Cobalt Strike 是一个为对手模拟和红队行动而设计的平台,主要用于执行有目标的攻击和模拟高级威胁 者的后渗透行动。 Cobalt Strike已经不再使用MSF而是作为单独的平台使用,它分为客户端与服务端,服务端是一个,客户端可以有多个,可被团队进行分布式协团操作。集成了端口转发、扫描多模式端口Listener、Windows exe程序生成、W...

梦之序章的博客 2万+

Go Hertz框架入门:构建高性能Web服务

Hertz是由字节跳动开源的Go语言HTTP框架,专注于高性能和易用性,适用于构建微服务、API网关等Web应用。安装Hertz只需使用go get命令,创建应用时可通过简单的代码实现“Hello World”示例。Hertz支持常见的HTTP方法、RESTful路由、参数绑定与验证、中间件、分组路由、静态文件服务等功能。开发者可以自定义服务器配置、错误处理、请求响应逻辑,并轻松处理文件上传和实现优雅关闭。Hertz还提供了性能优化建议,如调整并发数、启用压缩等。虽然Hertz本身不提供数据库和缓存集成,但

sinat_41883985的博客 1577

每天一个优秀提示词学习收藏 - 文本创作篇(二)

宝子们,今天不藏私啦!我把这段时间四处搜罗、潜心钻研出来的文本创作 Prompt 提示词大礼包双手奉上,这可都是能让你的 AI 创作水平原地起飞的干货!走过路过不要错过,赶紧码住,开启你的 AI 创作进阶之旅吧!

2401

Go语言学习指南——HTTP框架Hertz

Hertz是一个 Golang 微服务 HTTP 框架,在设计之初参考了其他开源框架 fasthttp、gin、echo的优势, 并结合字节跳动内部的需求,使其具有高易用性、高性能、高扩展性等特点,目前在字节跳动内部已广泛使用。如今越来越多的微服务选择使用 Golang,如果对微服务性能有要求,又希望框架能够充分满足内部的可定制化需求,Hertz 会是一个不错的选择。

m0_62275194的博客 1940

C语言入门系列:指针入门(超详细)

指针与内存是息息相关的,在学习指针之前,先回忆下内存相关的知识。内存是程序运行期间存储数据的硬件设备,为了方便管理,计算机将内存划分为一个个小的单元,每个单元的大小是一个字节。如果把内存比作一栋酒店大楼,内存单元就像是一个个小的房间,数据就住在小房间里。我们知道,为了客人能准确找到属于自己的房间,酒店房间是有房号的。同样,内存单元也是有编号的,这个编号在计算机中称之为“内存地址。

epitomizelu的专栏 3695

嘉立创EDA vs Altium Designer:新手如何选择?从界面到实战全对比

本文全面对比了嘉立创EDA与Altium Designer(AD)两大PCB设计工具,从设计哲学、界面交互、封装库管理、设计规则引擎、协作功能到成本生态六大维度进行深入分析。嘉立创EDA以极简设计和云端协作为特色,适合学生和创客快速上手;而AD则凭借专业级精准控制,成为高端电子设计的行业标准。通过实战案例和详细对比表格,帮助新手根据项目需求选择合适的EDA工具。

weixin_30296405的博客 720

Go Hertz 简介

Go Hertz 简介

闲余知道 1011

零样本缺陷检测新体验:用AnomalyGPT大模型快速搭建智能质检系统(附Win10适配指南)

本文详细介绍了如何利用AnomalyGPT大模型在Windows 10系统上快速搭建零样本工业缺陷检测系统。通过实战指南,涵盖从环境部署、模型准备到工程化落地的全过程,包括将模型封装为API服务、接入工业相机以及开发可视化监控看板,为制造业智能质检提供了一套高效、低门槛的本地部署解决方案。

weixin_29094775的博客 310

golang hertz框架入门

两种模式新建项目1、手动新建项目2、使用hz工具新建项目。

工作中学习,学习中进步 1091

2026实战:YOLOv11融合Swin Transformer,小目标检测精度暴涨47%

本文针对工业零件微小缺陷检测难题,提出了一种CNN与Transformer的最优融合方案。作者发现直接替换YOLOv11骨干网络为Swin Transformer会导致速度骤降69%而精度仅提升2.1%。通过大量实验,总结出三项核心设计原则:1)CNN为主、Transformer为辅;2)高层插入、浅层保留;3)模块化融合。最终提出三种渐进式融合方案,其中骨干部分替换方案(方案二)实现了小目标检测精度提升47%,推理速度仅下降8%的优异表现。文章详细解析了Swin Transformer的核心原理,提供了完

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 514

基于DeepFashion2和YOLOv12的服装检测系统:从数据集构建到UI界面实现

官方网站:数据集大小: 约80GB(压缩包)包含训练集、验证集和测试集数据集目录结构:text复制下载├── train/└── test/├── image/├── annos/Backbone优化:使用更高效的CSPNet结构Neck增强:引入BiFPN特征金字塔网络Head改进:使用解耦头(Decoupled Head)提升分类和定位精度损失函数:采用CIoU损失和分类Focal Loss训练策略:引入Mosaic数据增强和自适应锚框python复制下载。

YOLO 498

go工具库:hertz api框架 hertz client的使用

Hertz是由字节跳动开源的高性能Golang微服务框架,基于自研网络库netpoll,在延迟、QPS和内存占用等指标上优于标准库net/http。它提供灵活易用的中间件机制、可插拔组件设计,支持自动路由注册和多种序列化方式(JSON/Protobuf等),并内置服务治理能力(metrics、限流、熔断等)。框架兼容Gin风格,与CloudWeGo生态天然集成,适合构建微服务。文章详细介绍了Hertz的使用方法,包括创建标准/字节定制客户端、配置选项说明(超时/连接数/TLS等)以及发起请求的两种方式(Do

qq_41358574的博客 1866

python:实现brutefore破解wifi(附完整源码)

python:实现brutefore破解wifi(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 5708

字节跳动开源 Go HTTP 框架 Hertz 设计实践

Hertz 是字节跳动服务框架团队研发的超大规模的企业级微服务 HTTP 框架,具有高易用性、易扩展、低时延等特点。本文将重点关注 Hertz 的架构设计与功能特性。

weixin_44186218的博客 5311

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

一分钟使用高性能框架 Hertz

点击上方蓝色字体,选择“设为星标”回复”云原生“获取基础架构实践Hertz 是什么Hertz[həːts] 是字节 CloudWeGo 团队一个 Golang 微服务 HTTP 框架,在设计之初参考了其他开源框架 fasthttp、gin、echo 的优势, 并结合字节跳动内部的需求,使其具有高易用性、高性能、高扩展性等特点,目前在字节跳动内部已广泛使用。如今越来越多的微服务选择使用 Golang...

wangsofa的博客 2060

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

玩转 Go 生态|Hertz WebSocket 扩展简析

WebSocket 是一种可以在单个 TCP 连接上进行全双工通信,位于 OSI 模型的应用层。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并进行双向数据传输。提供了的支持,参考库使用hijack的方式在 Hertz 进行了适配,用法和参数基本保持一致。

dz45693的专栏 1877

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

字节开源WEB框架Hertz太香啦!

Hertz[həːts] 是一个 Golang 微服务 HTTP 框架,在设计之初参考了其他开源框架、、的优势, 并结合内部的需求,使其具有高易用性、高性能、高扩展性等特点,目前在字节跳动内部已广泛使用。如今越来越多的微服务选择使用 Golang,如果对微服务性能有要求,又希望框架能够充分满足内部的可定制化需求,Hertz 会是一个不错的选择。

xhbzl的博客 6518

Go 字节跳动—从需求到上线全流程

在实践当中,现在敏捷已经发展出了一套规模化的管理的框架也就说所谓的SAFe 这套框架是为企业中实施敏捷开发提供一套方法论如果说敏捷开发是一个团队内部的协作方式,那么SAFe就是在企业中,多个敏捷团队之间怎样配合如果大家到了目前一些比较大的厂工作,应该实际接触的就是这套模型比较理论的东西我们不去深入讨论:比如精益产品开发,敏捷软件开发,系统思考等等,这里专门开一门课都未必能讲完如果一个scrum就是一个战术小队敏捷教练就好比是小队的队长,产品负责人是负责联络指挥部和发布任务的人,

我亦无他,唯手熟尔 1万+

【字节跳动青训营】后端笔记整理-4 | Go框架三件套之GORM的使用

GORM 是 Go 语言中一个强大的 ORM 库(ORM 即对象关系映射,是一种程序设计技术,用于将不同类型的数据进行转换从而实现面向对象编程语言与数据库之间的交互),用于简化数据库操作。

wyd_333的博客 3403

Hertz:高性能 Golang 微服务 HTTP 框架

Hertz:高性能 Golang 微服务 HTTP 框架 【免费下载链接】hertz Go HTTP framework with high-performance and strong-extensibility for building micro-services. ...

gitblog_01078的博客 908

Go HTTP 框架之 Hertz —— 通过 reverseproxy 进行反向代理实战

当然,拓展不只是能够实现简单的反向代理,在 reverseproxy 拓展中提供了许多可以自定义的可选项。方法描述用于指定 protocol.RequestSetClient用于指定转发的客户端用于指定响应修改方法用于指定处理到达后台的错误或来自 modifyResponse 的错误。

Lance_Yuan24的博客 1148
下一篇: 【1024程序员节专属福利】:2023年最值得收藏的10大开发工具推荐
LearnFlow
博客等级 码龄1年 150粉丝 2113原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值