kitex的使用 |青训营

47 阅读2分钟

1.什么是RPC

RPC(Remote Procedure Call)叫作远程过程调用,它是利用网络从远程计算机上请求服务,可以理解为把程序的一部分放在其他远程计算机上执行。通过网络通信将调用请求发送至远程计算机后,利用远程计算机的系统资源执行这部分程序,最终返回远程计算机上的执行结果。

简单的理解是一个节点请求另一个节点提供的服务。是一种进程间的通信方式,它允许应用程序调用网络上的另一个应用程序中的方法,对于服务的消费者而言,无需了解远程调用的底层细节,是透明的,需要注意的是RPC并不是一个具体的技术,而是指整个网络远程调用过程。

2.RPC的核心组成部分

简单来说一个RPC架构里包含如下4个组件:

  • 客户端(Client):服务调用者。
  • 客户端存根(Client Stub):存放服务端地址信息,将客户端的请求参数打包成网络消息,再通过网络发送给服务方。
  • 服务端存根(Server Stub):接受客户端发送过来的消息并解包,再调用本地服务。
  • 服务端(Server):服务提供者。

3.kitex

Kitex 字节跳动内部的 Golang 微服务 RPC 框架,具有高性能、强可扩展的特点,在字节内部已广泛使用。如果对微服务性能有要求,又希望定制扩展融入自己的治理体系,Kitex 会是一个不错的选择。

4.kitex使用

  • 安装代码生成工具。

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

    安装 thriftgo:go install github.com/cloudwego/thriftgo@latest

  • 使用代码生成工具自动为idl文件生成代码。

kitex 工具生成代码的语法为 kitex [options] xx.thrfit/xxx.proto

  • 修改 ./handler.go文件,在里面编写服务端接口实现代码。

  • 在客户端增加对服务端方法的调用的代码。

  • 运行客户端和服务端的代码,即可看到客户端调用服务端方法的效果。