这是我参与「第五届青训营」伴学笔记创作活动的第 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文件即可生成对应的基础服务代码。