Go 语言全栈实战:基础语法 · Gin Web · Kratos 微服务 · 分布式爬虫 🏡
git clone https://github.com/javahongxi/golab.git
cd golab
go get ./...GoLab 按照从入门到实战的学习路径组织,帮助你系统掌握 Go 语言生态:
从 Go 语言的基本概念开始,涵盖核心语法和常用模式:
- 基础数据类型:变量、常量、类型转换、指针
- 控制流程:条件分支、循环、switch、defer
- 函数:函数定义、可变参数、闭包、递归
- 容器类型:数组、切片、Map、字符串处理
- 正则表达式:regexp 包的使用
- 错误处理:error 类型、panic/recover、自定义错误
- 泛型:Go 1.18+ 泛型工具函数(generic/utils.go)
- Embed:Go 1.16+ Embed 内嵌文件(embed/entry.go)
- 原子操作:sync/atomic 原子计数器(atomic/atomic.go)
- 定时任务:time.Ticker 定时执行(timer/timer.go)
详细文档:lang/README.md
深入理解 Go 并发模型:
- Goroutine:轻量级线程、并发执行
- Channel:通道通信、select、缓冲通道、done channel
- Pipeline:并行处理管道,外部排序演示
使用 Gin 框架构建完整的 Web 应用:
- Gin 框架:路由、中间件、请求处理
- 中间件链:日志、认证、限流、熔断、链路追踪、恢复
- 配置管理:Viper 配置加载、热更新(gin/config/config.go)
- 数据库:GORM ORM(gorm/)、Redis 缓存(gin/cache/redis.go)
- 认证授权:JWT Token、中间件认证
- 可观测性:OpenTelemetry 分布式追踪(gin/otel/otel.go)、Zap 结构化日志
- API 文档:gin/README.md
构建生产级微服务架构:
- gRPC:高性能 RPC 框架、Protobuf 定义、代码生成
- Kratos:轻量级微服务框架、HTTP/gRPC 双协议
- 服务注册发现:Nacos 集成(kratos/internal/registry/nacos.go)
- 使用文档:kratos/README.md
构建单任务和分布式爬虫系统:
- 单任务版:crawler/main.go
- 分布式版:基于 RPC 的分布式爬虫,支持 Elasticsearch 存储
| 分类 | 技术 | 说明 |
|---|---|---|
| 框架 | Gin | Web 开发框架 |
| 框架 | Kratos | 微服务框架 |
| ORM | GORM | 数据库 ORM |
| RPC | gRPC | 高性能 RPC |
| 服务发现 | Nacos | 服务注册与发现 |
| 分布式追踪 | OpenTelemetry | 链路追踪 |
| 日志 | Zap | 结构化日志 |
| 缓存 | Redis | 分布式缓存 |
| 配置 | Viper | 配置管理 |
| 搜索引擎 | Elasticsearch | 全文检索 |
# 克隆并启动相亲网站 lovemock
git clone https://github.com/javahongxi/lovemock
cd lovemock
go run main.go
# 启动单任务爬虫
cd crawler
go run main.go# 启动存储服务
cd crawler_distributed/persist/server
go run itemsaver.go --port=9090
# 启动多个 worker
cd crawler_distributed/worker/server
go run worker.go --port=9091
go run worker.go --port=9092
# 启动爬虫
cd crawler_distributed
go run main.go --itemsaver_host=:9090 --worker_hosts=:9091,:9092cd gin
go run main.gocd kratos
go run main.go精选 Go 语言优秀项目: