Отвечу на свой вопрос, если вдруг кто-то будет искать стратегии для балансировщика (router strategy).
Посмотрел в исходный код xray-core и обнаружил там 4 стратегии
"random", "leastping", "roundrobin", "leastload"
Но в последней версии xkeen стоит xray версии 1.8.4 в ней работает только random стратегия.
Скачал xray версии 1.8.10 (заменяем файл xray /opt/sbin/xray) но в ней работают только "random", "roundrobin"
Может @Skrill0 знает почему могут не работать стратегии "leastping", "leastload" ?
При запуске xkeen с одной из них получаю ошибку (panic: runtime error: invalid memory address or nil pointer dereference) (ошибка времени выполнения: неверный адрес памяти или разыменование нулевого указателя)
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x6d2d60]
goroutine 12 [running]:
github.com/xtls/xray-core/app/router.(*LeastLoadStrategy).getNodes(0x4000373ce0, {0x4000386220, 0x2, 0x6c95b8?}, 0x0)
github.com/xtls/xray-core/app/router/strategy_leastload.go:143 +0xa0
github.com/xtls/xray-core/app/router.(*LeastLoadStrategy).pickOutbounds(0x4000373ce0, {0x4000386220?, 0x0?, 0x6ca330?})
github.com/xtls/xray-core/app/router/strategy_leastload.go:75 +0x2c
github.com/xtls/xray-core/app/router.(*LeastLoadStrategy).PickOutbound(0x400035afc0?, {0x4000386220?, 0x0?, 0x2?})
github.com/xtls/xray-core/app/router/strategy_leastload.go:65 +0x20
github.com/xtls/xray-core/app/router.(*Balancer).PickOutbound(0x400035afc0)
github.com/xtls/xray-core/app/router/balancing.go:60 +0x1fc
github.com/xtls/xray-core/app/router.(*Rule).GetTag(...)
github.com/xtls/xray-core/app/router/config.go:21
github.com/xtls/xray-core/app/router.(*Router).PickRoute(0x10788a8?, {0x1081eb0?, 0x400034e5d0?})
github.com/xtls/xray-core/app/router/router.go:87 +0x54
github.com/xtls/xray-core/app/dispatcher.(*DefaultDispatcher).routedDispatch(0x4000362c00, {0x10788a8, 0x4000388450}, 0x40003861a0, {{0x1078678, 0x40003584a0}, 0x1bb, 0x2})
github.com/xtls/xray-core/app/dispatcher/default.go:403 +0x26c
github.com/xtls/xray-core/app/dispatcher.(*DefaultDispatcher).Dispatch.func1()
github.com/xtls/xray-core/app/dispatcher/default.go:266 +0x340
created by github.com/xtls/xray-core/app/dispatcher.(*DefaultDispatcher).Dispatch in goroutine 11
github.com/xtls/xray-core/app/dispatcher/default.go:239 +0x378
Описание стратегий:
Random:
Описание: Стратегия случайным образом выбирает один из узлов из доступного списка без учёта их текущей загрузки или доступности.
Применение: Подходит для простых сценариев, где требуется равномерное распределение трафика между узлами без учёта их состояния.
LeastPing:
Описание: Эта стратегия выбирает узел с наименьшим временем отклика (ping) в момент запроса.
Применение: Используется в сетевых условиях, где важно минимизировать задержки и максимизировать производительность путём выбора узла с наилучшими сетевыми характеристиками.
RoundRobin:
Описание: Стратегия поочерёдно выбирает каждый узел из списка, начиная с первого, и циклически возвращается к началу после достижения последнего узла.
Применение: Подходит для равномерного распределения нагрузки между узлами в общей сети, обеспечивая справедливую и эффективную балансировку.
LeastLoad:
Описание: Данная стратегия выбирает узел с наименьшей текущей загрузкой (количеством активных соединений или другими метриками загрузки).
Применение: Полезна в ситуациях, где требуется минимизировать нагрузку на узлы и обеспечить равномерное распределение трафика с учётом текущей загрузки каждого узла.