y101.第六章 微服务、服务网格及Envoy实战 -- 集群管理(十二)

8.14 负载均衡器子集(Subset)

  • Envoy还支持在一个集群中基于子集实现更细粒度的流量分发
    • 首先,在集群的上游主机上添加元数据(键值标签),并使用子集选择器(分类元数据)将上游主机划分为子集;
    • 而后,在路由配置中指定负载均衡器可以选择的且必须具有匹配的元数据的上游主机,从而实现向特定子集的路由;
    • 各子集内的主机间的负载均衡采用集群定义的策略(lb_policy);
  • 配置了子集,但路由并未指定元数据或不存在与指定元数据匹配的子集时,则子集均衡均衡器为其应用“回退策略”
    • NO_FALLBACK:请求失败,类似集群中不存在任何主机;此为默认策略;
    • ANY_ENDPOINT:在所有主机间进行调度,不再考虑主机元数据;
    • DEFAULT_SUBSET:调度至默认的子集,该子集需要事先定义;

envoy还支持在一个集群当中基于子集来完成更细粒度的流量分发,我们可能也不去分什么位置,也不要去做priority,甚至也没有去做weighted加权,我们也仍然能够实现对一个集群中的多个端点给它分成多个逻辑组,而且这个逻辑组是动态变动的,比如这里有多个端点,我们把前两个端点分成一个组,甚至还可以把2、3、4端点再分成一个组,然后把第1个、第4个、第5个分成一组,这叫逻辑组一个端点可以属于多个组,然后我们还可以将流量在这多个组更细粒度的组也叫子集之间进行调度,那我们如何去达成这种目标呢,方法就是在集群中为上游主机就是为每个端点去添加元数据,这个元数据

猜你喜欢

转载自blog.csdn.net/qq_25599925/article/details/125265437