java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java Chassis3负载均衡选择器

Java Chassis3负载均衡选择器技术解密

作者:liubao68

这篇文章主要为大家介绍了Java Chassis3负载均衡选择器技术解密,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

Java Chassis 3技术解密:负载均衡选择器

负载均衡用于管理微服务实例之间的访问策略。它负责在每次请求中高效选择目标实例,并保持请求在多个目标实例中均衡。目标实例选择过程可以使用下面的示例图简单展示:

AZ亲和是常见的选择器之一。它根据本实例的AZ信息和目标实例的AZ信息,确定合适的目标实例子集,实例子集与本实例具有相同的AZ信息。

负载均衡选择器是一个典型的职责链模式。

Ribbon 的职责链

public interface ServerListFilter<T extends Server> {
  List<T> getFilteredListOfServers(List<T> servers);
}

Spring Cloud Commons 的职责链

public abstract class DelegatingServiceInstanceListSupplier implements ServiceInstanceListSupplier, InitializingBean, DisposableBean {
  protected final ServiceInstanceListSupplier delegate;

  public DelegatingServiceInstanceListSupplier(ServiceInstanceListSupplier delegate) {
    this.delegate = delegate;
  }

  public ServiceInstanceListSupplier getDelegate() {
    return this.delegate;
  }
}

Java Chassis 的职责链

public interface DiscoveryFilter extends Ordered {
  DiscoveryTreeNode discovery(DiscoveryContext context, DiscoveryTreeNode parent);
}

Java Chassis 使用了树型结构的职责链,它的工作过程如下:

能够快速检索到实例的场景:

出现实例为空的的场景:

树型职责链模式优势

相对于线性的职责链模式,树型职责链模式存在两方面明显的优势:

客户故事:在某个客户的实际场景中,如果实例数超过1000,负载均衡的CPU消耗占到整个请求处理时间的20%以上,随着应用规模的变大,负载均衡处理算法的性能优化变得更加重要了。

以上就是Java Chassis3负载均衡选择器技术解密的详细内容,更多关于Java Chassis3负载均衡选择器的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文