Список серверов, которые обрабатывают запросы. Каждый сервер имеет “вес”:
Сервер | Вес |
---|---|
Сервер 1 | 70 |
Сервер 2 | 55 |
Сервер 3 | 30 |
… | … |
Чем больше “вес”, тем больше запросов может обработать сервер.
Распределить запросы по серверам в зависимости “веса” сервера.
<?php
$servers = [
['Сервер 1', 70],
['Сервер 2', 55],
['Сервер 3', 30],
];
$pickServer = function () use ($servers) {
// Поиск и выбор подходящего сервера
return $servers[0][0];
};
$stat = [];
for($query = 0; $query < 10000; $query += 1) {
$serverName = $pickServer();
$stat[$serverName] = ($stat[$serverName] ?? 0) + 1;
}
ksort($stat);
print_r($stat);
Правильный результат работы:
Array
(
[Сервер 1] => 4563
[Сервер 2] => 3490
[Сервер 3] => 1947
)
Результат может меняться при каждом запуске, но не сильно.