Как пограничный прокси Envoy хранит количество запросов на хост - PullRequest
0 голосов
/ 20 июня 2019

Мне интересно, как посланник хранит или управляет активным запросом для каждого хоста, а затем использует их для балансировки нагрузки «Наименьший запрос в первую очередь».Поскольку документация Посланника гласит, что он выбирает N хостов случайным образом, а затем выбирает из них наименее запрашиваемые.Этот алгоритм дает O (1) сложность и очень хорошие результаты.Поэтому, если посланник хранит все активные счетчики запросов, почему он не использует алгоритм, который может работать в O (logn), чтобы найти наименее запрошенный хост.Который может быть реализован с подходящей структурой данных, такой как деревья сегментов.

Я прочитал документацию и попытался просмотреть исходный код.Но не смог найти то, что искал.

Документация

1 Ответ

0 голосов
/ 27 июня 2019

Я думаю этот комментарий отвечает на ваш вопрос:

// As with tryChooseLocalLocalityHosts, this can be refactored for efficiency
// but O(N) is good enough for now given the expected number of priorities is
// small.

Так что речь идет о приоритетах в отставании. Не стесняйтесь прыгать и улучшать его;)

...