170 похожих чатов

Всем привет. На сервере используется модуль кластер для параллельной обработки

запросов с 4 форками. Дальше появилась задача продублировать один ендпроинт, скажем POST /test на другой сервер, с лимитом, 50 запросов в минуту.
Для реализации использовались сообщения между главным потоком и детьми. В каждого процесса есть обьект { куда слать запрос, сколько отправили в текущую минуту, лимит сообщений }, когда процесс продублировал запрос на другой сервер, то он отправляет мастеру сообщение для увеличения счетчика отправленных запросов, мастер же отправляет сообщения всем подпроцессам, чтобы они увеличили счетчик.
Это все работает, но на больших количествах запросов, 50/с, из-за задержки изменения каунтера в процессах, дублируется чуть больше лимита, при тесте 80 параллельных запросов, продублировалось 55 запросов с 50.
Можно ли как-то оптимизировать данных случай, чтобы не выходило за рамки лимита?

1 ответов

15 просмотров

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

Похожие вопросы

Обсуждают сегодня

Ребят в СИ можно реализовать ООП?
Николай
32
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем доброго вечера. Разрабатываю 32 раз. приложение в Delphi. Столкнулся с тем, что стандартный  TFilestream  не работает с большим файлом > 2 ГБайт (после вызова функции see...
Vadim Gl
16
У меня задача: написать брокер сообщений. Очереди и потребители. Очереди поддерживают приоритеты. Очередь отдает сообщения, только обработчикам с соответствующими характеристи...
Aleksandr Filippov
2
добрый день. Подскажите, есть сайт на 1.4.7 и я хочу обновиться, особо ничего не меняя. мне выбирать версию 1.4.35 или третью ветку? и можно ли обновлять "как есть", или нужно...
Digital Cat
12
народ, плиз хелп, всю голову сломал себе уже... разве может быть так, что GetProcAddress( GetModuleHandle( "kernel32.dll" ), "SetThreadDescription" ) вернёт ненулевое значение...
Iluha Companets
12
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Всем доброго вечера. Разрабатываю 32 раз. приложение в Delphi. Столкнулся с тем, что стандартный TFilestream не работает с большим файлом > 2 ГБайт (после вызова функции see...
Vadim Gl
8
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Карта сайта