日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

round robin权重轮循算法实现

發布時間:2025/5/22 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 round robin权重轮循算法实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

先上代碼,采用php腳本語言

<?php/* * Copyright (C) FatHong*//* 數據初始化,weight: 權重 */ $hosts['a'] = array('weight' => 5, 'current_weight' => 0, 'count' => 0); $hosts['b'] = array('weight' => 3, 'current_weight' => 0, 'count' => 0); $hosts['c'] = array('weight' => 2, 'current_weight' => 0, 'count' => 0);$result = array();/* 模擬10次 */ for ($i = 0; $i < 10; $i++) {round_robin($hosts, $result); }/* 輸出結果 */ print_r($result);/* round robin 輪循 */ function round_robin(&$hosts, &$result) {$total = 0;$best = null;foreach ($hosts as $key => $item) {$current = &$hosts[$key];$weight = $current['weight'];$current['current_weight'] += $weight;$total += $weight;if ( ($best == null) || ($hosts[$best]['current_weight'] < $current['current_weight']) ) {$best = $key;}}$hosts[$best]['current_weight'] -= $total;$hosts[$best]['count']++;$result[] = $best; }

輸出結果:

Array
(
??? [0] => a
??? [1] => b
??? [2] => c
??? [3] => a
??? [4] => a
??? [5] => b
??? [6] => a
??? [7] => c
??? [8] => b
??? [9] => a
)

負載均衡的服務器中,其實現算法有種是round-robin權重輪循,就是后端的服務器列表中,給每個服務器標上權重,代表它被采用的機率。

這段代碼把最簡潔的流程剝離出來,沒考慮后端掛起等情況,可以知道它是怎么實現的,僅供參考.

?

?

轉載于:https://my.oschina.net/fqing/blog/79161

總結

以上是生活随笔為你收集整理的round robin权重轮循算法实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。