kitc 源码 kitc_client
kitc(kite 的客户端代码) 中的 kitc_client.go 源码有 500+ 行
代码组成
接口
源码中包含以下接口
- discoverChangeHandler
- userErrCBChangeHandler
- NewClient
- NewWithThriftClient
- newWithThrfitClient
- SetChain
- initMWChain
- Call
- initRPCInfo
- Name
- instanceCBChangeHandler
- Options
- RemoteConfigs
- ServiceInstances
- RecentEvents
- ServiceCircuitbreaker
- InstanceCircuitbreaker
- pushEvent
- serviceCBChangeHandler
- GetRPCConfig
结构
- KitcClient
KitcClient
结构组成
1 | type KitcClient struct { |
成员解读
client
client 是一个接口,声明如下
1 | type Client interface { |
应由 kitool 工具自动生成
Call
源码
1 | func (kc *KitcClient) Call(method string, ctx context.Context, request interface{}) { |
这部分代码中的具体的实现依赖于 kitool 实现的客户端部分。
该方法的实际调用者为由 thrift 生成的中的继承自 kitcClient 的实例, 中间 caller.Call 接口是由 thrift 文件中生成的。
这个方法是 client 向 RPCServer 发起 RPC 请求,根据 method 参数确认要调用的方法
逻辑分析
- 在监控中增加计数
- 初始化 RPC info
- caller 调用方法
- 调用 middleWare
- 返回 response