常用推荐的框架速查清单

举报
码乐 发表于 2025/10/29 10:00:38 2025/10/29
【摘要】 1 简介你的开发工作通常包括哪些框架 ? 本文整理了一些常用的工具清单,供需要的各君自取。 2 服务框架Gin(HTTP 框架,常用于 API 网关 / 服务)框架定位 / 优势:轻量、API 设计友好、生态极大(中间件很多)、性能优秀(基于 httprouter),非常适合做 REST API 层、网关或小型微服务。常用配套(并给源码)Web / HTTP:gin-gonic/gin(源...

1 简介

你的开发工作通常包括哪些框架 ? 本文整理了一些常用的工具清单,供需要的各君自取。

2 服务框架

  • Gin(HTTP 框架,常用于 API 网关 / 服务)

框架定位 / 优势:轻量、API 设计友好、生态极大(中间件很多)、性能优秀(基于 httprouter),非常适合做 REST API 层、网关或小型微服务。

常用配套(并给源码)

Web / HTTP:gin-gonic/gin(源码与文档)。适合快速开发 REST。

队列 / 数据处理:Gin 项目中会结合 segmentio/kafka-go、nats.go、nsq、go-redis(Redis Stream)等实现异步任务/事件。

AI-CV:在 Gin 中常把 CV 推理以 HTTP 服务暴露(内部调用 GoCV 或调用外部 Python 服务/模型),使用 Gin 的中间件做限流/认证。GoCV 源码:hybridgroup/gocv。

LLM:很多团队用 Gin 做 LLM 服务的 API 层,实际的模型调用用 sashabaranov/go-openai 或本地 llama 绑定(go-skynet/go-llama.cpp),Gin 负责接入鉴权、速率限制、缓存等。

  • 为什么选 Gin:

优点:极高的生产力 + 丰富中间件 + 性能好(适合作为 API 网关或轻量微服务);生态成熟。

对比:比 Fiber / Echo 在社区/生态上更成熟;比 Hertz 在绝对极限基准上可能稍逊(Hertz 针对极致性能做了更多底层优化)。

  • 「队列/数据处理」的几个推荐(通用对比)

NATS (nats.go):轻量、简单、低延迟、支持 JetStream 持久化;适合事件总线与轻量消息发布/订阅。

NSQ:设计为实时分布式消息平台,易部署,适合需要去中心化拓扑的场景。

Kafka (segmentio/kafka-go / sarama):适合大吞吐、事件溯源、长期保存日志的场景。Go 客户端成熟(segmentio/kafka-go、Shopify/sarama)。
选型提示:若你要超高吞吐且顺序/持久化强需求优先 Kafka;若你要低延迟、事件总线优先 NATS;若你需要快速部署与简单拓扑 NSQ 仍是选项。

  • 「LLM / AI」在 Go 的生态(要点)

OpenAI 客户端:sashabaranov/go-openai(非官方)与官方 openai/openai-go 都很流行,适合调用远端 API(ChatGPT / GPT-4o 等)。

本地推理 / llama.cpp 绑定:go-skynet/go-llama.cpp 提供对 llama.cpp 的 Go 绑定,可在本地进行模型推理(适合离线/自托管场景)。

LangChain 风格 & 统一接口:tmc/langchaingo(LangChain 的 Go 实现),以及 natexcvi/go-llm、mutablelogic/go-llm、lexlapax/go-llms / teilomillet/gollm 等,都是把多个 LLM 提供者抽象化或提供 agent/chain 能力的库。

选型提示:

想用云端能力(OpenAI 等)→ 用 OpenAI Go 客户端或统一抽象层(gollm / go-llm)。

想本地离线 + 性能优化→ 考虑 llama.cpp + Go 绑定(go-llama.cpp)并把它封成高并发服务(由 Hertz/Kitex/Gin 暴露)。

3 小结:

如何按需求选框架(速查)

需要极强的架构控制、可测试、企业级治理 → 选 go-kit(工具箱式)。

想快速搭分布式服务、希望 runtime 插件化 → 选 go-micro / Micro。

偏 gRPC / codegen / 统一规范化企业项目 → 选 Kratos。

对吞吐/延迟要求极高(大规模服务) → 选 CloudWeGo(Hertz/Kitex)。

做快速 REST API / 网关 / 中小型服务 → 选 Gin(生态最丰富)。

直接源码速查(重要 repo 一览,便于复制粘贴)

  go-kit:https://github.com/go-kit/kit 
  go-micro(community / micro):https://github.com/micro/go-micro
   和 https://github.com/micro/micro 
  Kratos:https://github.com/go-kratos/kratos 
  CloudWeGo Hertz:https://github.com/cloudwego/hertz 
  CloudWeGo Kitex:https://github.com/cloudwego/kitex 
  Gin:https://github.com/gin-gonic/gin 
  NATS (Go client):https://github.com/nats-io/nats.go 
  NSQ:https://github.com/nsqio/nsq 
  Kafka Go:https://github.com/segmentio/kafka-go 
  GoCV(OpenCV 绑定):https://github.com/hybridgroup/gocv 
  OpenAI Go 客户端:sashabaranov/go-openai(https://github.com/sashabaranov/go-openai)与官方
   openai/openai-go(https://github.com/openai/openai-go)。
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。