GORM
GORM是一个Go语言的ORM框架,通过定义struct与数据库表之间的关系,可以实现建模、增删改查等数据库操作。GORM提供简单的API调用实现ORM,支持关联查询、读写分离、事务等功能。使用GORM可以大幅减少数据库操作代码,提高开发效率。GORM是Go Web项目中常用的数据库库之一。
KITEX
KITEX是一个以Go语言编写的高性能RPC框架,专注于微服务场景,可以用于构建稳定、高效的微服务系统。KITEX定义了简单清晰的IDL语言,通过IDL可以非常方便地定义服务接口和数据模型。KITEX实现了完整的RPC流程,开发者可以快速实现服务端 business logic,并通过客户端轻松调用服务。同时,KITEX还内置了服务治理、负载均衡等服务端功能,以及客户端负载均衡、熔断等机制,可以很好地保障整个微服务系统的高可用性。凭借出色的性能和完善的功能,KITEX已经成为Go语言实现微服务的首选框架。
HERTZ
HERTZ是一款采用Go语言开发的高性能Web框架,接口简单,非常易于学习和使用,可以显著提升Web应用的开发效率。HERTZ内置了便捷的路由机制,开发者可以快速定义请求路由及处理函数。同时,HERTZ还提供了灵活的中间件支持,使得开发者可以方便地实现日志、验证、Tracing等功能。借助HERTZ的高性能运行时,开发者可以轻松构建支持高并发、低延迟的Web服务。HERTZ还支持热重载、跨平台等特性,在保障性能的同时提升开发体验。因此,HERTZ是使用Go语言进行Web应用开发的优秀选择。
三件套使用
GORM使用
导入GORM包:
import "gorm.io/gorm"
连接数据库:
db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
定义模型:
type Product struct {
gorm.Model
Code string
Price uint
}
创建记录:
product := Product{Code: "D42", Price: 100}
db.Create(&product)
查询记录:
var product Product
db.First(&product, 1) // 通过ID查询
更新记录:
product.Price = 200
db.Save(&product)
删除记录:
db.Delete(&product, 1)
GORM通过定义struct与数据表映射,可以用很简单的代码就实现数据库的基本CRUD操作。
KITEX使用
Kitex 目前对 Windows 的支持不完善。如果本地开发环境是 Windows 的同学建议使用虚拟机或 WSL2。
定义IDL接口:
type HelloReq {
Name string
}
type HelloResp {
Message string
}
service Hello {
@handler NewHello
getHello(HelloReq) returns(HelloResp)
}
实现服务端:
// 实现NewHello handler
func NewHello(ctx context.Context, req *HelloReq) (resp *HelloResp, err error) {
// 业务实现
return
}
// 注册服务
svr := hello.MustNewServer(new(HelloImpl))
// 启动服务
err := svr.Run()
客户端调用:
// 构建客户端
c, err := hello.NewClient("localhost:8888", client.WithMessageLogger())
// 调用远程服务
req := &HelloReq{Name: "kitex"}
resp, err := c.GetHello(ctx, req)
HERTZ使用
导入hertz包:
import "github.com/cloudwego/hertz/pkg/app"
创建服务:
h := hertz.New()
定义路由:
h.GET("/hello", func(c context.Context, ctx *app.RequestContext) {
// 请求处理逻辑
})
添加中间件:
h.Use(LoggingMiddleware)
启动服务:
h.Spin()
客户端请求:
curl http://localhost:8080/hello
hertz通过封装net/http库,提供了路由、中间件、请求上下文等功能,可以快速构建Go web服务。
以上就是通过上课与看课件加上结合一些网上信息总结出来的笔记~