So implementieren Sie den Round-Robin-gewichteten Round-Robin-Algorithmus in PHP

*文
Freigeben: 2023-03-18 21:16:02
Original
1524 Leute haben es durchsucht

Wie implementiert man einen Round-Robin-gewichteten Round-Robin-Algorithmus in PHP? In diesem Artikel wird hauptsächlich der PHP-Implementierungscode des Round-Robin-gewichteten Round-Robin-Algorithmus vorgestellt. Freunde in Not können sich darauf beziehen. Ich hoffe, es hilft allen.

Geben Sie zunächst den Code mithilfe der PHP-Skriptsprache ein

<?php

/* 
 * Copyright (C) FatHong
 */

/* 数据初始化,weight: 权重 */
$hosts[&#39;a&#39;] = array(&#39;weight&#39; => 5, &#39;current_weight&#39; => 0, &#39;count&#39; => 0);
$hosts[&#39;b&#39;] = array(&#39;weight&#39; => 3, &#39;current_weight&#39; => 0, &#39;count&#39; => 0);
$hosts[&#39;c&#39;] = array(&#39;weight&#39; => 2, &#39;current_weight&#39; => 0, &#39;count&#39; => 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[&#39;weight&#39;];

    $current[&#39;current_weight&#39;] += $weight;
    $total += $weight;

    if ( ($best == null) || ($hosts[$best][&#39;current_weight&#39;] < 
                $current[&#39;current_weight&#39;]) ) 
    {
      $best = $key;
    }
  }

  $hosts[$best][&#39;current_weight&#39;] -= $total;
  $hosts[$best][&#39;count&#39;]++;

  $result[] = $best;
}
Nach dem Login kopieren

Ausgabeergebnis:

Array
(
[0] => a
[1] => b
[2] => > [6] => a
[7] => c
[9] => a

Im Server ist einer seiner Implementierungsalgorithmen die Round-Robin-Gewichtungsrotation, was bedeutet, dass in der Back-End-Serverliste jeder Server mit einem Gewicht markiert ist, um seine Übernahmewahrscheinlichkeit darzustellen.

Dieser Code entfernt den einfachsten Prozess, ohne Back-End-Hänge und andere Situationen zu berücksichtigen. Sie können wissen, wie er implementiert wird, nur als Referenz

Verwandte Empfehlungen:

PHP-Algorithmus zum Teilen eines Arrays ohne array_chunk()_PHP-Tutorial

PHP zur Implementierung eines einfachen Wahrscheinlichkeitstests

So tauschen Sie Teilstringpositionen in PHP aus

Das obige ist der detaillierte Inhalt vonSo implementieren Sie den Round-Robin-gewichteten Round-Robin-Algorithmus in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!