Go框架三件套 | 青训营笔记

77 阅读2分钟

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

1. Kitex相关内容

温馨提示:Kitex目前对Windows的支持不完善,如果本地开发环境是Windows建议使用虚拟机orWSL2;

安装代码生成工具

go install github.com/cloudwego/kitex/tool/cmd/kitex@latest
go install github.com/cloudwego/thriftgo@latest
复制代码

查看版本:

~ % kitex -version
复制代码

定义IDL

IDL是什么?

IDL是Interface description language的缩写,指接口描述语言,是规范的一部分,是跨平台开发的基础。

RPC是什么:

RPC(Remote Procedure Call Protocol)远程过程调用协议。一个通俗的描述是:客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个对象,就像调用本地应用程序中的对象一样。比较正式的描述是:一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议

Kitex生成代码

具体可以参考http://www.cloudwego.io/zh/docs/kitex/getting-started/

使用如下命令生成代码:

kitex -module example -service example echo.thrift
复制代码

文件说明:

  • build.sh:构建脚本
  • kitex_gen:IDL内容相关的生成代码,主要是基础的Server/Client代码
  • main.go:程序入口
  • handler.go:用户在该文件里实现IDLservice定义的方法

Kitex Client发起请求:

  • 创建Client
  • 发起请求

Kitex服务注册与发现:

目前Kitex的服务注册与发现已经对接了主流的服务注册与发现中心,如ETCD,Nacos等;

2. Hertz相关内容

详细内容可以查看:https://www.cloudwego.io/zh/docs/hertz/getting-started/

Hertz路由

Hertz提供了GET、POST、PUT、DELETE、ANY等方法用于注册路由;

提供了路由组Group的能力,用于支持路由分组功能;

提供了参数路由和通配路由,路由的优先级为:静态路由 > 命名路由 > 通配路由

Hertz参数绑定

Hertz提供了Bind、Validate、BindAndValidate函数用于进行参数绑定和校验;

Hertz中间件

Hertz的中间件主要分为客户端中间件与服务端中间件;

Hertz Client

Hertz提供了HTTP Client用于帮助用户发送HTTP请求;

Hertz代码生成工具

Hertz提供了代码生成工具Hz,通过定义IDL文件即可生成对应的基础服务代码。