Welcome! Log In Create A New Profile

Advanced

Re: upstream priority

Nikita Koshikov
November 06, 2020 05:56PM
Еще раз спасибо за ответ и хороших выходных

On Fri, Nov 6, 2020 at 1:53 PM Maxim Dounin <mdounin@mdounin.ru> wrote:
>
> Hello!
>
> On Fri, Nov 06, 2020 at 11:28:16AM -0800, Nikita Koshikov wrote:
>
> > Спасибо больше, Максим
> >
> > Хотелось бы уточнить насчет перехешированных ключей
> > Вот конфигурация
> > upstream backend {
> > hash 'balance';
> > server [::1]:81 weight=100 fail_timeout=60;
> > server [::1]:82 weight=100 fail_timeout=60;
> > server [::1]:83 weight=1 fail_timeout=60;
> > server [::1]:84 weight=1 fail_timeout=60;
> > }
> >
> > Ключ статический, соответственно все запросы должны повторять цепочку
> > отказов, однако на практике происходит так:
> > 81->82 или 82->81 - пока кто-нибудь из них жив. Когда оба недоступны
> > один и тот же запрос балансирует 83/84/83/84...
> > Количество в данном примере 4 и не должно попадать под критерий 20+.
> > Это баг или мое недопонимание как должен работать hash в данном
> > конкретном примере ? (nginx/1.16.1)
>
> Сколько в данном примере было попыток рехэширования - мы не знаем,
> так как при рехэшировании никто не гарантирует, что мы попадём на
> работающий бэкенд. Если мы снова попадаем на неработающий и/или
> испробованныый в рамках конкретного запроса бэкенд - происходит
> ещё одно рехэширование.
>
> В приведённом примере конфигурации после смерти бэкендов 81 и 82
> вероятность попасть на "живой" бэкенд при очередном рехэшировании
> около 1 процента, а с вероятностью 99% нам потребуется делать
> рехэширование снова. Поскольку ограничение сработает на 20
> попытках рехэширования - с вероятностью около 80% мы в это
> ограничение уткнёмся и выбор бэкенда будет делаться с помощью
> round-robin балансировки.
>
> Резюмируя вышесказанное: нет, это не баг, это ровно то, про что
> было сказано в предыдущем письме - устанете подбирать. Ибо с
> одной стороны надо обеспечить нужную последовательнось выбора
> бэкендов, а с другой - не выйти за ограничение в 20 попыток
> рехэширования.
>
> Если хочется всё-таки развлекаться - я бы смотрел в сторону
> алгоритма "сделать десяток/сотню фиктивных серверов, посмотреть,
> куда попадает запрос, и вписать нужные бэкенды на соответствующие
> места". Но, повторюсь, гораздо более прямой способ задать порядок
> явно - через error_page.
>
> --
> Maxim Dounin
> http://mdounin.ru/
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

upstream priority

Nikita Koshikov November 06, 2020 12:42PM

Re: upstream priority

Илья Шипицин November 06, 2020 12:54PM

Re: upstream priority

Nikita Koshikov November 06, 2020 01:18PM

Re: upstream priority

Илья Шипицин November 06, 2020 01:34PM

Re: upstream priority

Nikita Koshikov November 06, 2020 01:44PM

Re: upstream priority

Maxim Dounin November 06, 2020 01:50PM

Re: upstream priority

Nikita Koshikov November 06, 2020 02:30PM

Re: upstream priority

Maxim Dounin November 06, 2020 04:54PM

Re: upstream priority

Nikita Koshikov November 06, 2020 05:56PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 216
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready