欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

round robin權(quán)重輪循算法php實現(xiàn)代碼

 更新時間:2016年05月28日 20:37:44   投稿:mdxy-dxy  
這篇文章主要介紹了round robin權(quán)重輪循算法php實現(xiàn)代碼,需要的朋友可以參考下

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

<?php

/* 
 * Copyright (C) FatHong
 */

/* 數(shù)據(jù)初始化,weight: 權(quán)重 */
$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);
}

/* 輸出結(jié)果 */
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;
}

輸出結(jié)果:

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

負載均衡的服務(wù)器中,其實現(xiàn)算法有種是round-robin權(quán)重輪循,就是后端的服務(wù)器列表中,給每個服務(wù)器標(biāo)上權(quán)重,代表它被采用的機率。

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

相關(guān)文章

  • curl和libcurl的區(qū)別簡介

    curl和libcurl的區(qū)別簡介

    這篇文章主要介紹了curl和libcurl的區(qū)別簡介,本文講解了curl簡介、libcurl簡介、curl與libcurl對比、“curl”的不同意思、PHP中使用curl和libcurl等內(nèi)容,這么多的curl,搞都搞不懂,看了本文才知道,我們一直用的其實是libcurl,需要的朋友可以參考下
    2015-07-07
  • PHP基于方差和標(biāo)準(zhǔn)差計算學(xué)生成績的穩(wěn)定性示例

    PHP基于方差和標(biāo)準(zhǔn)差計算學(xué)生成績的穩(wěn)定性示例

    這篇文章主要介紹了PHP基于方差和標(biāo)準(zhǔn)差計算學(xué)生成績的穩(wěn)定性操作,涉及PHP數(shù)學(xué)運算相關(guān)操作技巧,需要的朋友可以參考下
    2017-07-07
  • Ajax實現(xiàn)對靜態(tài)頁面的文章訪問統(tǒng)計功能示例

    Ajax實現(xiàn)對靜態(tài)頁面的文章訪問統(tǒng)計功能示例

    這篇文章主要介紹了Ajax實現(xiàn)對靜態(tài)頁面的文章訪問統(tǒng)計功能,結(jié)合簡單實例形式分析了靜態(tài)頁面實現(xiàn)訪問統(tǒng)計功能的計數(shù)操作相關(guān)技巧,需要的朋友可以參考下
    2016-10-10
  • ThinkPHP安裝和設(shè)置

    ThinkPHP安裝和設(shè)置

    本文是ThinkPHP的系列教程的第一篇,本系列一共七篇,我們將從簡到難,由淺入深,給大家詳細介紹這款優(yōu)秀的國產(chǎn)開源php框架,有需要的小伙伴可以關(guān)注下。
    2015-07-07
  • php 上一篇,下一篇文章實現(xiàn)代碼與原理說明

    php 上一篇,下一篇文章實現(xiàn)代碼與原理說明

    就是對id對進行order by id desc 或 order by id asc進行排序,然后再判斷比當(dāng)前id> or小于當(dāng)前文章id的相同欄目的文章。
    2010-05-05
  • php訪問數(shù)組最后一個元素的函數(shù)end()用法

    php訪問數(shù)組最后一個元素的函數(shù)end()用法

    這篇文章主要介紹了php訪問數(shù)組最后一個元素的函數(shù)end()用法,實例分析了php中end函數(shù)訪問數(shù)組元素的技巧,非常具有實用價值,需要的朋友可以參考下
    2015-03-03
  • php驗證碼的制作思路和實現(xiàn)方法

    php驗證碼的制作思路和實現(xiàn)方法

    這篇文章主要介紹了php驗證碼的制作思路和實現(xiàn)方法,我們不能盲目的去實現(xiàn)php生成驗證碼,更應(yīng)該了解php驗證碼的基本原理,真正的掌握php驗證碼的實現(xiàn)方法,需要的朋友可以參考下
    2015-11-11
  • PHP實現(xiàn)的mysql讀寫分離操作示例

    PHP實現(xiàn)的mysql讀寫分離操作示例

    這篇文章主要介紹了PHP實現(xiàn)的mysql讀寫分離操作,簡單講述了mysql讀寫分離的原理,并結(jié)合實例形式給出了php針對mysql的讀寫sql語句操作不同數(shù)據(jù)庫的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2018-05-05
  • PHP與Java對比學(xué)習(xí)日期時間函數(shù)

    PHP與Java對比學(xué)習(xí)日期時間函數(shù)

    本文給大家介紹的是從Java和PHP進行對比復(fù)習(xí)了下日期時間的處理函數(shù),并給出了一些示例,希望對大家能夠有所幫助
    2016-07-07
  • php miniBB中文亂碼問題解決方法

    php miniBB中文亂碼問題解決方法

    miniBB因為簡約而美麗,但國內(nèi)使用人數(shù)極少, 好多人都是因為中文亂碼而放棄
    2008-11-11

最新評論