Golang 常用工具记录
Golang 常用工具记录
1 golang 类
1.1 日常使用的
复制结构体到另外一个结构体 等等类似的功能
Go中简单、可靠、高效的分布式任务队列,使用 redis 做为 broker
Machinery是基于分布式消息传递的异步任务队列/作业队列。
resty是 Go 语言的一个 HTTP client 库。resty功能强大,特性丰富。它支持几乎所有的 HTTP 方法。(GET/POST/PUT/DELETE/OPTION/HEAD/PATCH等),并提供了简单易用的 API。
1.2 日志包
go get github.com/sirupsen/logrus
golang 的日志包
go get -u go.uber.org/zap
golang 的日志包
1.3 配置文件解析
go get gopkg.in/ini.v1
ini 配置文件解析工具
go get github.com/spf13/viper
golang 的配置文件解析工具,支持多种格式,常用这个
2 grpc 类
调试grpc服务的工具
将数据库中的表转成 proto 文件,go-zero-looklook就用到了这个工具
3 web框架
go get -u github.com/gin-gonic/gin
http 框架
go get github.com/gorilla/websocket
websocket 库
据说性能低,每次 write 都要加锁,无法并发写入,不支持go 上下文特性,据说还会导致连接不会释放? 这个还不确定哦!!!
go get nhooyr.io/websocket
websocket 库,后面项目中用到,可以试试这个
go get github.com/go-playground/validator/v10
web 参数校验常用的库
4 跟数据库打交道的
4.1 sql 类
go get -u github.com/jinzhu/gorm
golang 的 orm 框架
mysql数据库转 struct 工具,可以将mysql数据库自动生成golang sturct结构,带大驼峰命名规则。带json标签
Go 的流畅 SQL 生成器
4.2 no sql 类
go get go.mongodb.org/mongo-driver/mongo
mongodb 的驱动器
# redis6.X
go get github.com/go-redis/redis/v8
# redis7.x
go get github.com/go-redis/redis/v9
5 跟消息队列 打交道的
5.1 kafka 类
go get github.com/segmentio/kafka-go
kafka 客户端,有个现象,同步生产很慢,但是异步生成就很快。
go-queue中的kq 就是用的 kafka-go
confluentinc/confluent-kafka-go
go get -u github.com/confluentinc/confluent-kafka-go/kafka
kafka 客户端。go 调 c++的库,性能强,就是编译麻烦些
6 Go学习的资料
6.1、 基础学习资料
Go 学习、Go 进阶、Go 实用工具类、Go DDD 项目落地、Go-kit 、Go-Micro 、Go 推送平台、微服务实践