/
aprogrammer
/
reverse-proxy-ms-yarp
Обзор
Документация
Войти
/
aprogrammer
/
reverse-proxy-ms-yarp
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/ReverseProxy/LoadBalancing/LeastRequestsLoadBalancingPolicy.cs
36 строк
1 KB
Kahbazi
File Scoped Namespaces (#1352)
12 ноя 2021, 21:53
Не верифицирован
12 ноя 2021, 21:53
44f13d9
Код
Авторство
О чём код?
// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. using System.Collections.Generic; using Microsoft.AspNetCore.Http; using Yarp.ReverseProxy.Model; namespace Yarp.ReverseProxy.LoadBalancing; internal sealed class LeastRequestsLoadBalancingPolicy : ILoadBalancingPolicy { public string Name => LoadBalancingPolicies.LeastRequests; public DestinationState? PickDestination(HttpContext context, ClusterState cluster, IReadOnlyList<DestinationState> availableDestinations) { if (availableDestinations.Count == 0) { return null; } var destinationCount = availableDestinations.Count; var leastRequestsDestination = availableDestinations[0]; var leastRequestsCount = leastRequestsDestination.ConcurrentRequestCount; for (var i = 1; i < destinationCount; i++) { var destination = availableDestinations[i]; var endpointRequestCount = destination.ConcurrentRequestCount; if (endpointRequestCount < leastRequestsCount) { leastRequestsDestination = destination; leastRequestsCount = endpointRequestCount; } } return leastRequestsDestination; } }