signed

QiShunwang

“诚信为本、客户至上”

gRPC-go源码剖析之grpc + LoadBalancer 实现负载均衡方案介绍

2021/6/9 8:03:54   来源:

1、整体流程介绍

在介绍源码前,先把大体流程说一下,然后再详细介绍源码;也就是先整体介绍,后局部介绍;
grpc客户端内部采用grpclb平衡器,采用自研的方式实现一个简单版本的负载均衡loadBalancer,架构图如下所示:
grpc+loadbalance实现方案
环境说明:
本次测试是在Mac环境下进行的测试:
启动一个grpc客户端,一个自研的loadBalancer, 三个grpc服务器;
主要流程说明:

  • grpc服务器端启动时后依次向loadBalancer进行注册自己的信息
  • grpc客户端中的客户端连接器ClientConn,使用自定义的解析器myResolverLB
  • 解析器myResolverLB调用grpclb平衡器
  • grpclb平衡器内部启动lbManualResolver解析器
  • lbManualResolver解析器使用默认平衡器pickfirst平衡器,向远端负载均衡软件loadBalancer建立起grpc链接,
  • loadBalancer返还服务器端的地址信息列表给grpc客户端
  • grpc客户端收到服务器地址后根据链接策略,向grpc服务器端进行链接

其实就是࿰