导航:首页 > 源码编译 > rr调度算法实现

rr调度算法实现

发布时间:2024-12-09 21:14:37

❶ 链変竴涓鍏锋湁涓ら亾浣滀笟镄勬壒澶勭悊绯荤粺锛屼綔涓氲皟搴﹂噰鐢ㄧ煭浣滀笟浼桦厛璋冨害绠楁硶锛岃繘绋嬭皟搴﹂噰鐢ㄤ互浼桦厛鏁颁负锘虹镄勬姠鍗犲纺

链棰树腑镄勭郴缁熸槸涓ら亾浣滀笟绯荤粺锛屽洜姝ゆ疮娆″彧鑳芥湁涓や釜浣滀笟杩涘叆绯荤粺锛屼綔涓氲皟搴﹂噰

鐢ㄧ煭浣滀笟浼桦厛绠楁硶锛屽彧链夎皟搴﹁繘鍏ョ郴缁熺殑杩涚▼鏂硅兘鍙备笌杩涚▼璋冨害锛涜繘绋嬭皟搴﹂噰鐢

锘轰簬浼桦厛鏁扮殑鎶㈠崰寮忚皟搴︾畻娉曪纴楂树紭鍏堢骇镄勮繘绋嫔彲浠ユ姠鍗犵郴缁熷勭悊链恒

链棰樼殑浣滀笟鍜岃繘绋嬬殑鎺ㄨ繘杩囩▼濡备笅锛

10锛00 A浣滀笟鍒拌揪锛岃浣滀笟璋冨害绋嫔簭璋冨害杩涘叆绯荤粺锛岃杩涚▼璋冨害绋嫔簭璋冨害寮濮嬭繍琛

10锛20 A浣滀笟杩愯20鍒嗛挓锛屽墿浣20鍒嗛挓锛岀敱浜庝紭鍏堢骇浣庯纴琚杩涚▼璋冨害绋嫔簭璋冨害澶勪簬灏辩华鐘舵

B浣滀笟鍒拌揪锛岃浣滀笟璋冨害绋嫔簭璋冨害杩涘叆绯荤粺锛岀敱浜庝紭鍏堢骇楂桡纴琚杩涚▼璋冨害绋嫔簭璋冨害澶勪簬寮濮嬭繍琛岀姸镐

10锛30 A浣滀笟绛夊緟10鍒嗛挓锛屽墿浣20鍒嗛挓锛岀户缁绛夊緟

B浣滀笟杩愯10鍒嗛挓锛屽墿浣20鍒嗛挓锛岀户缁杩愯

C浣滀笟鍒拌揪锛岀瓑寰呰浣滀笟璋冨害绋嫔簭璋冨害

10锛50 A浣滀笟绛夊緟30鍒嗛挓锛屽墿浣20鍒嗛挓锛岀敱浜庝紭鍏堢骇楂桡纴琚杩涚▼璋冨害绋嫔簭璋冨害澶勪簬寮濮嬭繍琛岀姸镐

B浣滀笟杩愯30鍒嗛挓锛屼綔涓氩畬鎴愶纴缁撴潫杩愯

C浣滀笟绛夊緟20鍒嗛挓锛岀敱浜庝及璁¤繍琛屾椂闂磋缉闀匡纴浠嶆湭琚璋冨叆绯荤粺涓杩愯

D浣滀笟鍒拌揪锛岃杩涚▼璋冨害绋嫔簭璋冨害澶勪簬灏辩华鐘舵

11锛10 A浣滀笟杩愯40鍒嗛挓锛屼綔涓氩畬鎴愶纴缁撴潫杩愯

C浣滀笟绛夊緟30鍒嗛挓锛岃浣滀笟璋冨害绋嫔簭璋冨害杩涘叆绯荤粺锛岀敱浜庝紭鍏堢骇楂桡纴琚杩涚▼璋冨害绋嫔簭璋冨害澶勪簬寮濮嬭繍琛岀姸镐

D浣滀笟绛夊緟10鍒嗛挓锛岀敱浜庝紭鍏堢骇浣庯纴琚杩涚▼璋冨害绋嫔簭璋冨害澶勪簬灏辩华鐘舵

12锛00 C浣滀笟杩愯50鍒嗛挓锛屼綔涓氩畬鎴愶纴缁撴潫杩愯

D浣滀笟绛夊緟70鍒嗛挓锛岃杩涚▼璋冨害绋嫔簭璋冨害澶勪簬寮濮嬭繍琛岀姸镐

12锛20 D浣滀笟杩愯20鍒嗛挓锛屼綔涓氩畬鎴愶纴缁撴潫杩愯

钖勪綔涓氩懆杞镞堕棿涓猴细

浣滀笟A 70锛屼綔涓欱 30锛屼綔涓欳 90锛屼綔涓欴 90銆

骞冲潎浣滀笟锻ㄨ浆镞堕棿涓70鍒嗛挓銆

鍙傝1.缃戦〉阈炬帴

2.缃戦〉阈炬帴

鐣ユ敼锷ㄣ

❷ 多台异地服务器如何实现负载均衡

一般用的就用简单的轮询就好了
调度算法
静态方法:仅根据算法本身实现调度;实现起点公平,不管服务器当前处理多少请求,分配的数量一致
动态方法:根据算法及后端RS当前的负载状况实现调度;不管以前分了多少,只看分配的结果是不是公平
静态调度算法(static Sche)(4种):
(1)rr (Round Robin) :轮叫,轮询
说明:轮询调度算法的原理是每一次把来自用户的请求轮流分配给内部中的服务器,从1开始,直到N(内部服务器个数),然后重新开始循环。算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。缺点:是不考虑每台服务器的处理能力。
(2)wrr (Weight Round Robin) :加权轮询(以权重之间的比例实现在各主机之间进行调度)
说明:由于每台服务器的配置、安装的业务应用等不同,其处理能力会不一样。所以,我们根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应权值数的服务请求。
(3)sh (Source Hashing) : 源地址hash实现会话绑定sessionaffinity
说明:简单的说就是有将同一客户端的请求发给同一个real server,源地址散列调度算法正好与目标地址散列调度算法相反,它根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的并且没有超负荷,将请求发送到该服务器,否则返回空。它采用的散列函数与目标地址散列调度算法的相同。它的算法流程与目标地址散列调度算法的基本相似,除了将请求的目标IP地址换成请求的源IP地址。
(4)dh : (Destination Hashing) : 目标地址hash
说明:将同样的请求发送给同一个server,一般用于缓存服务器,简单的说,LB集群后面又加了一层,在LB与realserver之间加了一层缓存服务器,当一个客户端请求一个页面时,LB发给cache1,当第二个客户端请求同样的页面时,LB还是发给cache1,这就是我们所说的,将同样的请求发给同一个server,来提高缓存的命中率。目标地址散列调度算法也是针对目标IP地址的负载均衡,它是一种静态映射算法,通过一个散列(Hash)函数将一个目标IP地址映射到一台服务器。目标地址散列调度算法先根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
动态调度算法(dynamic Sche)(6种):
(1)lc (Least-Connection Scheling): 最少连接
说明:最少连接调度算法是把新的连接请求分配到当前连接数最小的服务器,最小连接调度是一种动态调度短算法,它通过服务器当前所活跃的连接数来估计服务器的负载均衡,调度器需要记录各个服务器已建立连接的数目,当一个请求被调度到某台服务器,其连接数加1,当连接中止或超时,其连接数减一,在系统实现时,我们也引入当服务器的权值为0时,表示该服务器不可用而不被调度。此算法忽略了服务器的性能问题,有的服务器性能好,有的服务器性能差,通过加权重来区分性能,所以有了下面算法wlc。
简单算法:active*256+inactive (谁的小,挑谁)
(2)wlc (Weighted Least-Connection Scheling):加权最少连接
加权最小连接调度算法是最小连接调度的超集,各个服务器用相应的权值表示其处理性能。服务器的缺省权值为1,系统管理员可以动态地设置服务器的权限,加权最小连接调度在调度新连接时尽可能使服务器的已建立连接数和其权值成比例。由于服务器的性能不同,我们给性能相对好的服务器,加大权重,即会接收到更多的请求。
简单算法:(active*256+inactive)/weight(谁的小,挑谁)
(3)sed (shortest expected delay scheling):最少期望延迟
说明:不考虑非活动连接,谁的权重大,我们优先选择权重大的服务器来接收请求,但会出现问题,就是权重比较大的服务器会很忙,但权重相对较小的服务器很闲,甚至会接收不到请求,所以便有了下面的算法nq。
基于wlc算法,简单算法:(active+1)*256/weight (谁的小选谁)
(4).nq (Never Queue Scheling): 永不排队
说明:在上面我们说明了,由于某台服务器的权重较小,比较空闲,甚至接收不到请求,而权重大的服务器会很忙,所此算法是sed改进,就是说不管你的权重多大都会被分配到请求。简单说,无需队列,如果有台real server的连接数为0就直接分配过去,不需要在进行sed运算。
(5).LBLC(Locality-Based Least Connections) :基于局部性的最少连接
说明:基于局部性的最少连接算法是针对请求报文的目标IP地址的负载均衡调度,主要用于Cache集群系统,因为Cache集群中客户请求报文的目标IP地址是变化的,这里假设任何后端服务器都可以处理任何请求,算法的设计目标在服务器的负载基本平衡的情况下,将相同的目标IP地址的请求调度到同一个台服务器,来提高服务器的访问局部性和主存Cache命中率,从而调整整个集群系统的处理能力。
(6).LBLCR(Locality-Based Least Connections with Replication) :基于局部性的带复制功能的最少连接
说明:基于局部性的带复制功能的最少连接调度算法也是针对目标IP地址的负载均衡,该算法根据请求的目标IP地址找出该目标IP地 址对应的服务器组,按“最小连接”原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器;若服务器超载,则按“最小连接”原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除, 以降低复制的程度。

阅读全文

与rr调度算法实现相关的资料

热点内容
精品php源码 浏览:960
自己编写云服务器抢红包 浏览:203
java解压缩文件加密 浏览:887
dlink打印服务器默认地址 浏览:353
php休眠函数 浏览:372
金蝶如何打开服务器 浏览:765
e4a手游辅助源码 浏览:777
什么app可以实时直播 浏览:106
苹果13的app闪退什么原因 浏览:775
尾盘选股源码公式 浏览:450
php日期运算 浏览:931
天龙八部长歌服务器什么时候开的 浏览:199
鬼泣4模型在那个文件夹 浏览:229
单片机的串行口 浏览:58
phpjson转化为数组 浏览:268
pdf导入excel 浏览:428
苹果xsmax信任app在哪里设置 浏览:53
自动外链php源码 浏览:245
我的世界新手奖励箱命令 浏览:146
linux更新vim 浏览:998