和最后一行的 gRPC-C(用 C 语言实现的)线程相比可知,gRPC-C 的每千行代码平均创建 0.03 个线程,而用 Go 实现的项目,平均从千行代码平均 0.18 个协程,到 0.83 个协程。
支持路由规则可以设置为IP段、项目 多条路由规则工作原理: 流程如上流程图所示, 如果多条规则,grpc-c会一条一条的匹配, 对于每一条,客户端先看 =>前面的匹配条件,是不是限制本身的,不是的话,跳过 13.2 实现思路 客户端每次调用服务端时,grpc-c中都会调用 start_pick_locked 方法选择subchannel,及选择服务端发送数据,首先判断当前客户端的负载均衡模式,原生的流程是根据 Grpc-c 工作流程 2.1 发送流程 • 解析地址:client消息发送给gRpc,然后resolver解析域名,并获取到目标服务器地址列表; • 负载均衡:客户端基于负载均衡算法,从连接服务器列表中找出一个目标服务器