这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天
基本特性
消息类型
Kitex 支持 PingPong、Oneway、Streaming 消息类型。
序列化协议
Kitex 支持 Thrift 和 Protobuf 两种编解码。
传输协议
Kitex 支持 TTHeader、HTTP2 传输协议。
直连访问
在明确要访问某个下游地址时,Kitex 可以选择直连访问的方式,不需要经过服务发现。
连接类型
Kitex 支持短连接、长连接池、连接多路复用以及连接池状态监控。
超时控制
Kitex 支持 RPC 超时和连接超时,两种超时均支持 client 级别和调用级别的配置。
请求重试
Kitex 异常重试与 Backup Request 策略介绍与使用指南。
负载均衡
Kitex 提供的负载均衡器实现原理和使用指南。
业务异常
Kitex 自 v0.4.3 版本提供了业务自定义异常功能,本文涵盖了相关接口定义、用户使用和框架实现介绍。
熔断器
Kitex 熔断使用指南、原理介绍。
限流
Kitex 默认限流和自定义限流使用指南。
埋点粒度
Kitex 支持灵活启用基本埋点和细粒度埋点。
日志
Kitex 支持默认 logger 实现和注入自定义 logger 以及重定向默认 logger 输出。
安装代码生成工具
首先,我们需要安装使用本示例所需要的命令行代码生成工具:
- 确保
GOPATH环境变量已经被正确地定义(例如export GOPATH=~/go)并且将$GOPATH/bin添加到PATH环境变量之中(例如export PATH=$GOPATH/bin:$PATH);请勿将GOPATH设置为当前用户没有读写权限的目录 - 安装 kitex:
go install github.com/cloudwego/kitex/tool/cmd/kitex@latest - 安装 thriftgo:
go install github.com/cloudwego/thriftgo@latest
安装成功后,执行 kitex --version 和 thriftgo --version 应该能够看到具体版本号的输出(版本号有差异,以 x.x.x 示例):
$ kitex --version
vx.x.x
$ thriftgo --version
thriftgo x.x.x
增加一个新的方法
namespace go api
struct Request {
1: string message
}
struct Response {
1: string message
}
service Hello {
Response echo(1: Request req)
}