hertz与kitex整合 | 青训营

2023年 8月 26日 28.7k 0

在本次项目中,预期使用kitex与hertz实现。hertz将作为总关是实现请求的转发,将各请求转发至对应rpc服务器。在本篇文章中,仅使用单机进行简单介绍。

官方范例:github.com/cloudwego/h…

首先需要准备linux环境并安装kitex以及hz代码生成工具。

官方网址:www.cloudwego.io/

kitex与hz安装:

在linux终端中输入

go install github.com/cloudwego/kitex/tool/cmd/kitex@latest

go install github.com/cloudwego/hertz/cmd/hz@latest

以获取最新版本的kitex以及hz代码生成工具

代码生成

hz new -idl ../idl/xxxx.thrift

kitex ../idl/xxxx.thrift

生成后的文件结构可以查看

kitex:www.cloudwego.io/zh/docs/kit…
hertz:www.cloudwego.io/zh/docs/her…

现在就可以进行编码了,
在hertz server文件夹下 biz/handler/api/xxxx.go中可以找到hz为我们生成的代码,在这里添加代码逻辑即可。这里因为是kitex与hertz整合,所以需要获得rpc相应作为网络响应结果。因此需要创建client连接对应的server,

	client, err := studentmanagement.NewClient("student", client2.WithHostPorts("127.0.0.1:8888"))
	if err != nil {
		panic(err)
	}

特别的这里需要将hertz_server的request转化为rpc_server的request

	reqRpc := &management.QueryStudentRequest{
		Num: fmt.Sprintf("%d", req.Num),
	}

	respRpc, err := client.QueryStudent(ctx, reqRpc)
	if err != nil {
		panic(err)
	}

同样的需要转化response

	resp := &api.QueryStudentResponse{
		Num:    respRpc.Num,
		Name:   respRpc.Name,
		Gender: respRpc.Gender,
	}

这样启动rpc服务器后再启动hertz服务器就可以进行网络响应了。

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论