Skip to content

javahongxi/golab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

108 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GoLab 🧪

Go 语言全栈实战:基础语法 · Gin Web · Kratos 微服务 · 分布式爬虫 🏡

git clone https://github.com/javahongxi/golab.git
cd golab
go get ./...

📚 学习路径

GoLab 按照从入门到实战的学习路径组织,帮助你系统掌握 Go 语言生态:

1. 基础语法 (lang/)

从 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

2. 并发编程 (lang/channel/、lang/goroutine/、pipeline/)

深入理解 Go 并发模型:

  • Goroutine:轻量级线程、并发执行
  • Channel:通道通信、select、缓冲通道、done channel
  • Pipeline:并行处理管道,外部排序演示

3. Web 开发 (gin/、gorm/)

使用 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

4. 微服务 (grpc/、kratos/)

构建生产级微服务架构:

5. 分布式爬虫 (crawler/、crawler_distributed/)

构建单任务和分布式爬虫系统:

🛠️ 技术栈

分类 技术 说明
框架 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,:9092

Gin 应用

cd gin
go run main.go

Kratos 应用

cd kratos
go run main.go

📖 Go Projects

精选 Go 语言优秀项目:

© hongxi.org

About

Go full-stack playground: Gin, Kratos, gRPC, distributed crawler and concurrency patterns

Topics

Resources

Stars

40 stars

Watchers

5 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages