负载均衡策略之最少连接

栏目: 服务器 · 发布时间: 5年前

内容简介:本文简单记录了一下最少连接策略以及带权重的最少连接策略这两个负载均衡策略的实现方法, 当然还有其他的实现方法欢迎一起探讨。

最少连接 (Least Connection)

最少连接策略指的是从已有的后端列表中选择正在处理的连接数/请求数(对于七层负载均衡器来说可能更多的是说的最少请求数) 最少的节点出来提供服务。

既然要判断连接数/请求数,那么每个节点都需要保存一个正在处理的连接数/请求数的信息,然后选取节点的时候判断一下, 选择连接数最少的那个节点。

python 简单表示就是:

class Node:
    def __init__(self, name):
        self.name = name
        self.connections = 0

    def __repr__(self):
        return '<Node: {}, conn: {}>'.format(self.name, self.connections)


class LC:

    def __init__(self, nodes):
        self.nodes = nodes

    def select(self):
        best = None

        for node in self.nodes:
            if best is None or node.connections < best.connections:
                best = node

        best.connections += 1
        return best

    def release(self, node):
        node.connections -= 1

带权重的最少连接 (Weighted Least Connection)

实际使用中各个节点往往都带有不同的权重,比较连接数时需要同时考虑节点的权重信息, 被选中的节点的连接数与权重的比要最小。 即,被选中的节点满足下面的条件:

  • 假设用 C 表示连接数、W 表示权重、S 表示被选中的节点、Sn 表示未被选中的节点
  • 那么 S 必须满足 C(S) / W(S) < C(Sn) / W(Sn) ,这个条件也可以表示为 C(S) * W(Sn) < C(Sn) * W(S)

用 python 简单表示就是:

class Node:
    def __init__(self, name, weight):
        self.name = name
        self.weight = weight
        self.connections = 0

    def __repr__(self):
        return '<Node: {}, weight: {}, conn: {}>'.format(
                self.name, self.weight, self.connections)


class LC:

    def __init__(self, nodes):
        self.nodes = nodes

    def select(self):
        best = None

        for node in self.nodes:
            if best is None or (
                    node.connections * best.weight
                    ) < (best.connections * node.weight):
                best = node

        best.connections += 1
        return best

    def release(self, node):
        node.connections -= 1

本文简单记录了一下最少连接策略以及带权重的最少连接策略这两个负载均衡策略的实现方法, 当然还有其他的实现方法欢迎一起探讨。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Alone Together

Alone Together

Sherry Turkle / Basic Books / 2011-1-11 / USD 28.95

Consider Facebookit’s human contact, only easier to engage with and easier to avoid. Developing technology promises closeness. Sometimes it delivers, but much of our modern life leaves us less connect......一起来看看 《Alone Together》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具