1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/Tinywan-load-polling

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
README.md 3.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 06.06.2025 05:13 1b265f5

Эти классы представляют базовые реализации алгоритмов балансировки нагрузки. В реальных приложениях могут потребоваться дополнительные функции для обновления состояния серверов, обработки ошибок и т. д.

nginx

Введение

Реализация нескольких алгоритмов балансировки нагрузки на PHP, подробнее см. алгоритмы балансировки нагрузки серии. fork

Алгоритмы балансировки

Установка

composer require tinywan/load-polling 

Базовое использование

// Количество серверов
$services = [
    '192.168.10.1' => 5,
    '192.168.10.2' => 1,
    '192.168.10.3' => 1,
];

// Использование плавающего взвешенного алгоритма (Smooth Weighted Round Robin)
$robin = new \Robin\SmoothWeightedRobin();
$robin->init($services);

$nodes = [];
$sumWeight = $robin->getSumWeight();
for ($i = 1; $i <= $sumWeight; $i++) {
    $node = $robin->next();
    $nodes[$i] = $node;
}
var_export($nodes);

// Будет сгенерирован следующий равномерный ряд
array (
  1 => '192.168.10.1',
  2 => '192.168.10.1',
  3 => '192.168.10.2',
  4 => '192.168.10.1',
  5 => '192.168.10.3',
  6 => '192.168.10.1',
  7 => '192.168.10.1',
)
```### Управление Composer

При установке возникает ошибка: `Не удалось найти пакет tinywan/load-polling в версии, соответствующей 1.0`.
Попробуйте изменить адрес на Packagist https://packagist.org
```composer log
"repositories": {
    "packagist": {
        "type": "composer",
        "url": "https://packagist.org"
    }
}

Чтобы ваш последний пакет был доступен для использования, используйте вышеуказанный зеркальный источник, для учебных целей

Ссылки

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/Tinywan-load-polling.git
git@api.gitlife.ru:oschina-mirror/Tinywan-load-polling.git
oschina-mirror
Tinywan-load-polling
Tinywan-load-polling
master