软件开发算法常见类型都有哪些
算法是程序员在学习计算机编程开发技术的时候需要重点掌握的一个编程知识,下面我们就通过案例分析来了解一下,软件开发算法常见类型都有哪些。 1、rr轮询调度算法 顾名思义,轮询分发请求。 优点:实现简单 缺点:不考虑每台服务器的处理能力 2、wrr加权调度算法 我们给每个服务器设置权值Weight,负载均衡调度器根据权值调度服务器,服务器被调用的次数跟权值成正比。 优点:考虑了服务器处理能力的不同 3、sh原地址散列算法 提取用户IP,根据散列函数得出一个key,再根据静态映射表,查处对应的value,即目标服务器IP。过目标机器超负荷,则返回空。 优点:实现同一个用户访问同一个服务器。 4、dh目标地址散列算法 原理同上,只是现在提取的是目标地址的IP来做哈希。 优点:实现同一个用户访问同一个服务器。 5、lc少连接算法 优先把请求转发给连接数少的服务器。 优点:使得集群中各个服务器的负载更加均匀。 6、wlc加权少连接算法 在lc的基础上,为每台服务器加上权值。算法为:(活动连接数*256+非活动连接数)÷权重,计算出来的值小的服务器优先被选择。 优点:可以根据服务器的能力分配请求。 7、sed短期望延迟算法 其实sed跟wlc类似,区别是不考虑非活动连接数。算法为:(活动连接数+1)*256÷权重,同样计算出来的值小的服务器优先被选择。 8、nq永不排队算法 改进的sed算法。我们想一下什么情况下才能“永不排队”,那就是服务器的连接数为0的时候,那么假如有服务器连接数为0,均衡器直接把请求转发给它,无需经过sed的计算。 9、LBLC基于局部性少连接算法 负载均衡器根据请求的目的IP地址,找出该IP地址近被使用的服务器,把请求转发之。若该服务器超载,采用少连接数算法。 10、LBLCR带复制的基于局部性少连接算法 负载均衡器根据请求的目的IP地址,找出该IP地址近使用的“服务器组”,注意,并不是具体某个服务器,然后采用少连接数从该组中挑出具体的某台服务器出来,把请求转发之。若该服务器超载,那么根据少连接数算法,在集群的非本服务器组的服务器中,找出一台服务器出来,加入本服务器组,然后把请求转发。