负载均衡算法(三)加权随机负载均衡算法

    /// <summary>
    /// 加权随机负载均衡算法
    /// </summary>
    public static class WeightRandom
    {

        static Dictionary<string, int> dic = new Dictionary<string, int>
        {
            { "192.168.1.12", 1},
            {"192.168.1.13", 1 },
            { "192.168.1.14", 3},
            { "192.168.1.15", 1},
            {"192.168.1.16", 1},
            {"192.168.1.17", 1 },
            { "192.168.1.18", 1},
            { "192.168.1.19", 1}
        };

        public static string weightRandom()
        {
            //獲取ip列表list
            List<string> it = dic.Keys.ToList();

            List<String> serverList = new List<string>();

            foreach (var item in it)
            {
                int weight = 0;
                dic.TryGetValue(item, out weight);

                for (int i = 0; i < weight; i++)
                {
                    serverList.Add(item);
                }
            }
            Random random = new Random();
            int randomPos = random.Next(serverList.Count);
            string server = serverList[randomPos];
            return server;
        }
    }
时间: 2024-10-20 16:45:34

负载均衡算法(三)加权随机负载均衡算法的相关文章

python的random模块及加权随机算法的python实现

random是用于生成随机数的,我们可以利用它随机生成数字或者选择字符串. random.seed(x)改变随机数生成器的种子seed. 一般不必特别去设定seed,Python会自动选择seed. random.random()    用于生成一个随机浮点数n,0 <= n < 1 random.uniform(a,b)    用于生成一个指定范围内的随机浮点数,生成的随机整数a<=n<=b; random.randint(a,b)    用于生成一个指定范围内的整数,a为下限,

LVS负载均衡的三种模式和八种算法总结

三种LVS负载均衡模式 调度器的实现技术中,IP负载均衡技术是效率最高的,IP虚拟服务器软件(IPVS)是在linux内核中实现的? LVS负载均衡模式---1.NAT模式 NAT用法本来是因为网络IP地址不足而把内部保留IP地址通过映射转换成公网地址的一种上网方式(原地址NAT)?如果把NAT的过程稍微变化,就可以成为负载均衡的一种方式?原理其实就是把从客户端发来的IP包的IP头目的地址在DR上换成其中一台REALSERVER的IP地址并发至此REALSERVER,而REALSERVER则在处

浅析负载均衡的6种算法,Ngnix的5种算法。

浅析负载均衡的6种算法,Ngnix的5种算法.?浮生偷闲百家号03-21 10:06关注内容导读其实际效果越来越接近于平均分配调用量到后端的每一台服务器,也就是轮询的结果.源地址哈希的思想是根据获取客户端的IP地址,通过哈希函数计算得到的一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客服端要访问服务器的序号.采用源地址哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行访问.不同的后端服务器可能机器的配置和当前系统的负载并不相同

啥是负载均衡,为何要做负载均衡?

沁淫在互联网圈的人应该都听到过负载均衡这个词,那么什么是负载均衡,为什么要做负载均衡呢? 所谓负载均衡,就是说如果一组计算机节点(或者一组进程)提供相同的(同质的)服务,那么对服务的请求就应该均匀的分摊到这些节点上,都可以单独对外提供服务而无须其他服务器的辅助. 负载均衡的作用在于,通过某种负载分担技术,让所有节点以最小的代价.最好的状态对外提供服务,快速获取重要数据,最大化降低了单个节点过载.甚至crash的概率,解决大量并发访问服务问题,简要概括就是:解决并发压力,提高应用处理性能:提供故障

linux负载均衡总结性说明(四层负载/七层负载)

在常规运维工作中,经常会运用到负载均衡服务.负载均衡分为四层负载和七层负载,那么这两者之间有什么不同?废话不多说,详解如下: 一.  什么是负载均衡1)负载均衡(Load Balance)建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽.增加吞吐量.加强网络数据处理能力.提高网络的灵活性和可用性.负载均衡有两方面的含义:首先,大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间:其次,单个重负载的运算分担到多台节点设备上做并行处理,每个节点

四层和七层负载均衡的特点及常用负载均衡Nginx、Haproxy、LVS对比

一.四层与七层负载均衡在原理上的区别 图示: 四层负载均衡与七层负载均衡在工作原理上的简单区别如下图: 概述: 1.四层负载均衡工作在OSI模型中的四层,即传输层.四层负载均衡只能根据报文中目标地址和源地址对请求进行转发,而无法修改或判断所请求资源的具体类型,然后经过负载均衡内部的调度算法转发至要处理请求的服务器.四层负载均衡单纯的提供了终端到终端的可靠连接,并将请求转发至后端,连接至始至终都是同一个.LVS就是很典型的四层负载均衡. 2.七层负载均衡工作在OSI模型的第七层应用层,所以七层负载

[转] 四层和七层负载均衡的特点及常用负载均衡Nginx、Haproxy、LVS对比

一.四层与七层负载均衡在原理上的区别 1.图示 2.概述 四层负载均衡工作在 OSI 模型中的四层,即传输层.四层负载均衡只能根据报文中目标地址和源地址对请求进行转发,而无法修改或判断所请求资源的具体类型,然后经过负载均衡内部的调度算法转发至要处理请求的服务器.四层负载均衡单纯的提供了终端到终端的可靠连接,并将请求转发至后端,连接至始至终都是同一个.LVS 就是很典型的四层负载均衡. 七层负载均衡工作在 OSI 模型的第七层,即应用层,所以七层负载均衡可以基于请求的应用层信息进行负载均衡,例如根

负载均衡技术(二)———常用负载均衡服务介绍

此文已由作者张小刚授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 在上一篇文章中,介绍了负载均衡服务,常用的负载均衡服务器以及负载均衡服务在公司的应用情况.这一篇文章会对上篇提到的负载均衡服务器进行较为深入的分析,对其主要功能,优缺点,使用场景进行介绍.希望可以起到抛砖引玉的左右,对大家在了解,使用不同的负载均衡服务有所帮助. LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个基于Linux的负载均衡服务器.LVS项目在19

负载均衡之基于L3/4负载

L3/4负载平衡 另一种较为常见的负载平衡则是L3/4负载平衡.这里的L3/4实际上指的就是负载平衡服务器会根据OSI模型中的第三层网络层(Network Layer)和第四层传输层(Transport Layer)所包含的数据来进行负载平衡操作.在这种负载平衡服务器中,这些数据主要包含数据包的IP头和TCP.UDP等协议的协议头: L3/4负载平衡服务器的工作原理非常简单:在数据到达时,负载平衡服务器将根据自身算法以及OSI模型三四层所包含的数据决定需要处理该数据的服务实例并将其转发. 整个负