From 4a12399fc7fc88eeaa5a7d73532d2fb912500c7e Mon Sep 17 00:00:00 2001 From: Nikita Korotaev <104270279+iambabyninja@users.noreply.github.com> Date: Mon, 30 Dec 2024 09:45:50 +0500 Subject: [PATCH] RU Balancer: Add more details to BalancerObject --- docs/ru/config/routing.md | 56 +++++++++++++++++++++++++++++++++++---- 1 file changed, 51 insertions(+), 5 deletions(-) diff --git a/docs/ru/config/routing.md b/docs/ru/config/routing.md index d658590..d08cbce 100644 --- a/docs/ru/config/routing.md +++ b/docs/ru/config/routing.md @@ -220,11 +220,12 @@ Массив строк, каждая из которых будет использоваться для сопоставления с префиксом тега исходящего канала. Например, для следующих тегов исходящих каналов: `[ "a", "ab", "c", "ba" ]`, `"selector": ["a"]` будет соответствовать `[ "a", "ab" ]`. -Если найдено несколько исходящих каналов, балансировщик нагрузки в настоящее время случайным образом выбирает один из них в качестве конечного исходящего канала. +Обычно, когда находится несколько исходящих подключений (outbound), они используются для равномерного распределения нагрузки. > `fallbackTag`: string -Если балансировщик нагрузки не может выбрать подходящий исходящий канал, используется исходящий канал, указанный в этом параметре. +Если на основе результатов наблюдения за подключениями все исходящие (outbound) оказываются недоступными, то используется исходящее подключение, указанное в этой настройке. +Примечание: необходимо добавить конфигурацию [observatory](./observatory.md#observatoryobject) или [burstObservatory](./observatory.md#burstobservatoryobject). > `strategy`: [StrategyObject](#strategyobject) @@ -239,14 +240,60 @@ - `random`: значение по умолчанию. Случайным образом выбирает соответствующий исходящий прокси. - `roundRobin`: выбирает соответствующие исходящие прокси по очереди. -- `leastPing`: выбирает соответствующий исходящий прокси с наименьшей задержкой на основе результатов наблюдений за соединением. Необходимо добавить параметр конфигурации [observatory](./observatory.md#observatoryobject). -- `leastLoad`: выбирает наиболее стабильный соответствующий исходящий прокси на основе результатов наблюдений за соединением. Необходимо добавить параметр конфигурации [burstObservatory](./observatory.md#burstobservatoryobject). +- `leastPing` Выбирает исходящий прокси с наименьшей задержкой на основе результатов наблюдения за подключениями. Необходимо добавить конфигурацию [observatory](./observatory.md#observatoryobject) или [burstObservatory](./observatory.md#burstobservatoryobject). +- `leastLoad` Выбирает наиболее стабильный исходящий прокси на основе результатов наблюдения за подключениями. Необходимо добавить конфигурацию [observatory](./observatory.md#observatoryobject) или [burstObservatory](./observatory.md#burstobservatoryobject). > `settings`: [StrategySettingsObject](#strategysettingsobject) ##### StrategySettingsObject Это необязательный параметр конфигурации, формат которого различается для разных стратегий балансировки нагрузки. В настоящее время этот параметр конфигурации можно добавить только для стратегии балансировки нагрузки `leastLoad`. +```json +{ + "expected": 2, + "maxRTT": "1s", + "tolerance": 0.01, + "baselines": ["1s"], + "costs": [{ + "regexp": false, + "match": "tag", + "value": 0.5 + }] +} +``` + +> `expected`: number + +Количество оптимальных узлов, выбираемых балансировщиком нагрузки. Трафик будет случайным образом распределен между этими узлами. + +> `maxRTT`: string + +Максимально допустимое время RTT (задержки) при измерении скорости. + +> `tolerance`: float number + +Максимально допустимая доля неудачных измерений скорости, например, 0.01 означает, что допустим 1% неудачных измерений (похоже, не реализовано). + +> `baselines`: \[ string \] + +Максимально допустимое стандартное отклонение времени RTT при измерении скорости. + +> `costs`: \[ CostObject \] + +Необязательный параметр конфигурации, массив, позволяющий задать веса для всех исходящих соединений. + +> `regexp`: true | false + +Использовать ли регулярные выражения для выбора `Tag` исходящего соединения. + +> `match`: string + +Сопоставление `Tag` исходящего соединения. + +> `value`: float number + +Значение веса. Чем больше значение, тем менее вероятно, что соответствующий узел будет выбран. + ### Примеры конфигурации балансировки нагрузки ```json @@ -309,4 +356,3 @@ - `tld-!cn`: содержит домены верхнего уровня, не используемые в материковом Китае, например, доменные имена, оканчивающиеся на `.tw` (Тайвань), `.jp` (Япония), `.sg` (Сингапур), `.us` (США), `.ca` (Канада) и т.д. Вы также можете просмотреть полный список доменов здесь: [Domain list community](https://github.com/v2fly/domain-list-community). -