负载均衡策略之最少连接

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

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

最少连接 (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

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


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

查看所有标签

猜你喜欢:

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

罗辑思维

罗辑思维

罗振宇 / 长江文艺出版社 / 2013-10-25 / 36.00

本书根据罗振宇的互联网视频知识脱口秀《罗辑思维》创作。 资深媒体人罗振宇对正在到来的互联网时代有深刻的洞察。他认为,互联网正在成为我们生活中的“基础设施”,它将彻底改变人类协作的方式,使组织逐渐瓦解、消融,而个体生命的自由价值得到充分释放。 《罗辑思维》的口号是“有种、 有趣、有料”,做大家“身边的读书人”,倡导独立、理性的思考,凝聚爱智求真、积极上进、自由阳光、人格健全的年轻人。......一起来看看 《罗辑思维》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

随机密码生成器
随机密码生成器

多种字符组合密码