Round Robin 算法

转载自   Round Robin 算法

什么是Round Robin?

先来看和他相近的名词,轮询调度算法(Round-Robin Scheduling)

轮询调度算法的原理是每一次把来自用户的请求轮流分配给内部中的服务器,从1开始,直到N(内部服务器个数),然后重新开始循环。

算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。

轮询调度算法流

  假设有一组服务器N台,S = {S1, S2, …, Sn},一个指示变量i表示上一次选择的服务器ID。变量 i 被初始化为N-1。其算法如下:

import java.util.concurrent.atomic.AtomicInteger;public class RoundRobin2 {/*** 线程安全的*/private final static AtomicInteger next = new AtomicInteger(0);private int select(int S[]) throws Exception {if (S == null || S.length == 0)throw new Exception("exception");else {return S[next.getAndIncrement() % S.length];}}public static void main(String args[]) throws Exception {int S[] = {0, 1, 2, 3, 4};RoundRobin2 roundRobin2 = new RoundRobin2();for (int i = 0; i < 10; i++) {System.out.println(roundRobin2.select(S));}}
}
轮询算法的缺点:

轮询调度算法假设所有服务器的处理性能都相同,不关心每台服务器的当前连接数和响应速度。当请求服务间隔时间变化比较大时,轮询调度算法容易导致服务器间的负载不平衡。

所以此种均衡算法适合于服务器组中的所有服务器都有相同的软硬件配置并且平均服务请求相对均衡的情况。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/325359.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《彷徨》金句摘抄

今日读书摘抄金句&#xff1a; System.out.print("今天摘抄的是什么书呢&#xff1f;"); String b_name "《彷徨》"; System.out.println("今天读的是"b_name);入芝兰之室&#xff0c;久而不闻其香小鸭也诚然是可爱&#xff0c;遍身松花黄&…

EasyExcel中输出为时间格式

前端传值 后端Excel配置为String类型 配置为其他类型显示格式转化异常

Identity Service - 解析微软微服务架构eShopOnContainers(二)

接上一篇&#xff0c;众所周知一个网站的用户登录是非常重要&#xff0c;一站式的登录&#xff08;SSO&#xff09;也成了大家讨论的热点。微软在这个Demo中&#xff0c;把登录单独拉了出来&#xff0c;形成了一个Service&#xff0c;用户的注册、登录、找回密码等都在其中进行…

TCP/IP协议——ARP详解

转载自 TCP/IP协议——ARP详解 本文主要讲述了ARP的作用、ARP分组格式、ARP高速缓存、免费ARP和代理ARP。 1.学习ARP前要了解的内容 建立TCP连接与ARP的关系 应用接受用户提交的数据&#xff0c;触发TCP建立连接&#xff0c;TCP的第一个SYN报文通过connect函数到达IP层&a…

RPC远程过程调用之 RMI实现

1&#xff09;RMI&#xff08;remote method invocation&#xff09;是java原生支持的远程调用&#xff0c;RMI采用JRMP&#xff08;java RemoteMessageing Protocol&#xff09;作为通信协议。可以认为是纯java版本的分布式远程调用解决方法。 2&#xff09;RMI的核心概念 3&…

《四世同堂》金句摘抄(一)

System.out.println("今天读的是什么书呢&#xff1f;"); String bname "《四世同堂》"; System.out.println("今天读的书是&#xff1a;"bname);Console.WriteLine("今天读的是什么书呢&#xff1f;"); String bname "《四世同…

[翻译]编写高性能 .NET 代码 第一章:性能测试与工具 -- 选择什么来衡量

选择什么来衡量 在搜集数据测试数据前&#xff0c;你需要知道你要以怎样的指标来衡量测试结果。这听起来很容易&#xff0c;但实际上比你想象中的要难许多。如果你想降低内存使用量&#xff0c;你会选择什么方式呢&#xff1f; 私有工作集&#xff08;Private working set&am…

RPC远程过程调用之Hessian 基于HTTP

Hessian使用C/S方式&#xff0c;基于HTTP协议传输&#xff0c;使用Hessian二进制序列化。 添加依赖&#xff1a; <dependency><groupId>com.caucho</groupId><artifactId>hessian</artifactId><version>4.0.7</version> </depen…

EF框架中,在实体中手动更新字段,数据库数据未同步到程序中应该怎么解决呢?

在一些技术不是很强的选手手中&#xff0c;设计数据库时&#xff0c;难免会未考虑到某些字段&#xff0c;只能到后期实现功能时&#xff0c;才能觉察出来数据库中或是少写字段&#xff0c;或是多加了无用的字段&#xff0c;故我们还不得不去数据库中做些手脚。 本文列举的是在…

[.NET跨平台]Jexus独立版本的便利与过程中的一些坑

本文环境与前言 之前写过一篇相关的文章:在.NET Core之前,实现.Net跨平台之MonoCentOSJexus初体验 当时的部署还是比较繁琐的,而且需要联网下载各种东西..有兴趣的可以看看,但是..已经过时了.. 虽然已经出了.NET Core2.0 但是目前是预览版本,而且部署来说 相对比较麻烦. 今…

nacos伪集群安装注意到

1&#xff1a;端口需要隔离开 新版增加GRPC 不要挨着设置ip&#xff0c;否则会出现端口占用。 可以使用 8848 8858 8868 8848GRPC会占用9848 9899 8849&#xff1a; 占用9849 9850 8850&#xff1a; 占用9850 9851 nginx 负载也需要与上述端口 隔离开…

Comparator 和 Comparable

Comparator 和 Comparable 相同点 Comparator 和 Comparable都是java的接口&#xff0c;并且是用来对自定义的class比较大小的。 对于自定义类如&#xff1a;public class Person{ String name; int age }.   当我们有这么一个personList&#xff0c;里面包含了person1, pe…

利用JEXL实现动态表达式编译

转载自 利用JEXL实现动态表达式编译 背景 做项目突然遇到这样的需求: 系统要获取多个数据源的数据&#xff0c;并进行处理&#xff0c;最后输出多个字段。字段的计算规则一般是简单的取值最多加一点条件判断。 而且需要动态变动&#xff01;&#xff01;例如一个字段a的取值…

《四世同堂》金句摘抄(二)

System.out.println("今天读的是什么书呢&#xff1f;"); String bname "《四世同堂》"; System.out.println("今天读的书是&#xff1a;"bname);Console.WriteLine("今天读的是什么书呢&#xff1f;"); String bname "《四世同…

码农不重视文档:开源项目深受其苦

GitHub 刚刚发布了《2017 开源调查》报告&#xff0c;这家知名编程社交网站走访了 github.com 社区内 3800 多个项目和超过 5500 名成员&#xff0c;并且与 500 名在 GitHub 项目生态系统之外的编程者们进行了交谈。本次调查涉及多方面&#xff0c;比如人们在为开源项目做开发、…

kafka监控软件kafka-eagle搭建 web无法访问

https://www.likecs.com/show-204789016.html

《四世同堂》金句摘抄(三)

System.out.println("今天读的是什么书呢&#xff1f;"); String bname "《四世同堂》"; System.out.println("今天读的书还是&#xff1a;"bname);Console.WriteLine("今天读的是什么书呢&#xff1f;"); String bname "《四世…

[翻译]编写高性能 .NET 代码 第一章:性能测试与工具 -- 平均值 vs 百分比

平均值 vs 百分比 在考虑要性能测试的目标值时&#xff0c;我们需要考虑用什么统计口径。大多数人都会首选平均值&#xff0c;但在大多数情况下&#xff0c;这个正确的&#xff0c;但你也应该适当的考虑百分数。但你有可用性的要求&#xff0c;作为性能测试的目标里肯定会有用…

《四世同堂》金句摘抄(四)

System.out.println("今天读的是什么书呢&#xff1f;"); String bname "《四世同堂》"; System.out.println("今天读的书还是&#xff1a;"bname); System.out.println("在摘抄一下");下面是今天的摘抄内容 生在某一种文化中的人&a…