本小节主要是介绍一下round_robin类型的平衡器的基本原理;
其实,就是如何处理两个场景:
- 场景一:跟grpc服务器端链接的策略是什么,比方说同一个服务,可能是由多个grpc服务器端提供的;那么此时,grpc客户端的平衡器选择什么策略来连接grpc服务器端呢?这里的策略指的是,跟其中一个grpc服务器端相连接,还是全部连接,还是根据grpc服务器端的负载情况进行链接呢?等等
- 场景二:如果grpc客户端的平衡器(如round_robin平衡器)链接了多个grpc服务器地址,那么,在真正进行帧的传输时,应该如何从刚链接好的众多grpc服务器地址中选择一个tcp链接进行帧的传输呢?如,可以始终选择第一个链接进行传输数据,或者轮询的方式依次选择连接,或者随机选择连接等等
那么,接下来,主要是介绍上面说的情况,看看round_robin平衡器是如何处理的?
round_robin平衡器,其实底层创建的是baseBalancer平衡器,round_robin平衡器的核心是按照某种策略获取某个子链接,也就是在Pick方法的实现上;