当前位置: 首页 > backend >正文

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.xdnf.cn/news/11447.html

相关文章:

  • 常用的错误码介绍
  • 深入解析数码相机CCD坏点及噪点检测!【图解教程】
  • 容器化之-可视化镜像仓库管理(Harbor+阿里云oss)
  • 扒一扒那些叫欧拉的定理们(四)——平面几何欧拉定理美学鉴赏
  • PrepareStatement用法(附源码解析)
  • ubuntu使用VNC实现远程桌面
  • android drawtext 方法,8.2.13 drawText方法:绘制字符串
  • Windows系统字体优化方案(系统字体替换)
  • AAV相关研究最新进展(2023年5月)
  • 针对centos(Linux)多网卡bond绑定模式及其操作
  • LinearLayout
  • 29 | 分布式高可靠之流量控制:大禹治水,在疏不在堵
  • 【Android OpenGL开发】OpenGL ES与EGL介绍
  • ContentProvider的相关知识总结
  • 新加坡云服务器推荐 - 适合跨境外贸等业务
  • 2 v11补丁安装_老款macbook机型欺骗补丁强制安装macOS11 Big Sur图文详解
  • Linux下权限的修改-JDK的配置-文件的常见操作
  • Java学习 布局管理器之GridLayout(网格布局)
  • 企业最新几种好用的数据同步工具对比
  • Qt 多线程的几种实现方式
  • Linux系统三步安装QQ
  • C/C++网络编程
  • JSTL-核心标签库
  • 动态域名内网穿透(永久免费)
  • 设计模式七大原则-迪米特法原则
  • 安全小课堂丨什么是暴力破解?如何防止暴力破解
  • 谷歌浏览器、Yandex浏览器使用体验分享
  • 光流法(optical flow)简介
  • 13800138000来电?手机管家:小心诈骗
  • Windows 10 离线安装 .NET Framework 3.5 的方法和技巧