go三件套之kitex | 青训营笔记

148 阅读2分钟

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

什么是RPC

RPC(Remote Procedure Call Protocol)远程过程调用协议。

RPC是一种协议一套规范,用来远程过程调用的。也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。

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

Protobuf

Protobuf 全称是 Google Protocol Buffer,是一种高效轻便的结构化数据存储方式,用于数据的通信协议、数据存储等。相对比 XML 来说,其特点:

语言无关,平台无关 高效 扩展性、兼容性更强

Kitex

Kitex 是一个 RPC 框架,既然是 RPC,底层就需要两大功能:

Serialization 序列化 Transport 传输 Kitex 框架及命令行工具,默认支持 thrift 和 proto3 两种 IDL,对应的 Kitex 支持 thrift 和 protobuf 两种序列化协议。传输上 Kitex 使用扩展的 thrift 作为底层的传输协议(注:thrift 既是 IDL 格式,同时也是序列化协议和传输协议)。IDL 全称是 Interface Definition Language,接口定义语言。

安装Kitex代码生成工具 定义IDL

使用IDL定义服务与接口

Kitex生成代码

使用 kitex -module example -service example echo.thrift 命令生成代码

Kitex 基本使用

服务默认监听8888端口

Kitex Client 发起请求

创建Client 发起请求

Kitex 服务注册与发现

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

Kitex 生态

总结

kitex入门学习