kite 源码 -- kite
kite.go 源码大概有 200+ 行
代码组成
kite.go 包含以下公共接口和模块内部成员
- SetIDL
- NewAccessLogger
- NewCallLogger
- GetLocalIp
- Init
- Run
- WaitSignal
- MethodContext
- DefineProcessor
- Use
- KiteMW
- AddMethodMW
内部成员
- userMW
endpoint.Middleware - mMap
map[string]endpoint.Middleware - RPCServer
*RPCServer - IDLs
map[string]string - Processor
thrfit.TProcessor - KiteVersion
const string
Init
代码逻辑
- 如果存在环境变量
GOMAXPROCS和MY_CPU_LIMIT设置runtime.GOMAXPROCSruntime.GOMAXPROCS为 go 程序所能占用的最大核数,也可以理解为线程数 - 读取配置,配置优先级
配置文件 > 环境变量 > 参数 - 初始化 init Data bus config
- 初始化 access logger
- 初始化 kitc 的 call logger
- 创建 RPCServer 的实例
Run
源码
1 | func Run() error { |
逻辑
- 启动一个 goroutine, 在其中启动 RPCServer.Serve() 服务
- 等待系统中断信号并退出
waitSignal
源码
1 | func waitSignal(errCh chan error) error { |
代码逻辑
- 设置 os 的中断信号由 signals 通道接受
- 等待系统的中断并处理