Hertz、Kitex、GORM初体验 | 青训营笔记

374 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天

本篇文章主要是收集了笔者在学习今天的课程,在首次体验Hertz、Kitex、GORM的一些难点时,所总结出来的注意点。

Hertz、Kitex、GORM初体验

Hertz

官方文档:概览 | CloudWeGo

它是一个go语言的微服务HTTP框架,类似于之前学习的GIN框架,都可以用来作为搭建发送HTTP请求、接收请求等操作的项目。相比于GIN,它优化了许多配置,并且简化了许多代码的编写规范,是go语言程序员的不可错过的优秀框架。 此处做一个对比,通过Hertz框架和GIN框架发送一个简单的GET请求的相应写法: 这是Hertz框架:

    //Hertz
    h := server.Default()
    h.GET("/ping", func(c context.Context, ctx *app.RequestContext) {
            ctx.JSON(consts.StatusOK, utils.H{"message": "pong"})
    })
    h.Spin()

这是GIN框架:

    //GIN
    h := GIN.Default()
    h.GET("/ping", func(context *gin.Context) {
            context.JSON(200,map[string]interface{}{
                "message": "pong",
            })
    })
    h.Run(":8889")

Kitex

官方文档:概览 | CloudWeGo

它是一个专门用于go语言的微服务RPC框架,类似于之前学习的GRPC内容,它也是用给在微服务框架中,不同的服务之间进行通讯的工具。

值得注意的是,据官方介绍,Kitex的功能并不能完全支持于Windows环境,因此更推荐于使用Linux环境之中。因此,笔者选择的方法是使用windows的子系统WSL2,然后再利用VScode的远程连接功能,连接WSL2,再进行Kitex的功能操作,等未来电脑安装了双系统后再过渡到纯linux系统。这样的最大缺点就是,没办法使用原装的Goland编译器,毕竟在WSL2中再安装一个idea的话又显得过于麻烦了。

IDL

IDL是用来描述软件组件接口的一种计算机语言。利用IDL,可以编写可读性更好的接口文件,如go-zero框架的用于api服务的.api文件、以及Kitex框架的用于rpc服务的.proto文件(遵守Proto IDL语法)、.thrift文件(遵守Thrift IDL语法),这样描述接口属于一种编程规范。

其中,Thrift在Kitex中得到了大规模地使用,编写的thrift文件,还可以使用Kitex的代码生成插件kitex,快速生成出各个与rpc服务相关的文件夹于文件,供程序员进行具体业务逻辑编写。

//生成代码:
kitex -$serviceName a.b.c $xxx.thrift

GORM

官方文档:《GORM 中文文档》 | Go 技术论坛 (learnku.com)

待补充